mirror of
https://github.com/nodejs/node.git
synced 2025-12-28 07:50:41 +00:00
buffer: combine checking range of sourceStart in buf.copy
Merging 2 checking range of sourceStart into 1. Plus, add test case to increase coverage if sourceStart is greater than length of source. PR-URL: https://github.com/nodejs/node/pull/47758 Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
This commit is contained in:
parent
528aacab8d
commit
2545019451
@ -222,8 +222,8 @@ function _copy(source, target, targetStart, sourceStart, sourceEnd) {
|
||||
sourceStart = 0;
|
||||
} else {
|
||||
sourceStart = toInteger(sourceStart, 0);
|
||||
if (sourceStart < 0)
|
||||
throw new ERR_OUT_OF_RANGE('sourceStart', '>= 0', sourceStart);
|
||||
if (sourceStart < 0 || sourceStart > source.length)
|
||||
throw new ERR_OUT_OF_RANGE('sourceStart', `>= 0 && <= ${source.length}`, sourceStart);
|
||||
}
|
||||
|
||||
if (sourceEnd === undefined) {
|
||||
@ -237,12 +237,6 @@ function _copy(source, target, targetStart, sourceStart, sourceEnd) {
|
||||
if (targetStart >= target.length || sourceStart >= sourceEnd)
|
||||
return 0;
|
||||
|
||||
if (sourceStart > source.length) {
|
||||
throw new ERR_OUT_OF_RANGE('sourceStart',
|
||||
`<= ${source.length}`,
|
||||
sourceStart);
|
||||
}
|
||||
|
||||
return _copyActual(source, target, targetStart, sourceStart, sourceEnd);
|
||||
}
|
||||
|
||||
|
||||
@ -124,7 +124,7 @@ b.copy(Buffer.alloc(0), 1, 1, 1);
|
||||
b.copy(Buffer.alloc(1), 1, 1, 1);
|
||||
|
||||
// Try to copy 0 bytes from past the end of the source buffer
|
||||
b.copy(Buffer.alloc(1), 0, 2048, 2048);
|
||||
b.copy(Buffer.alloc(1), 0, 1024, 1024);
|
||||
|
||||
// Testing for smart defaults and ability to pass string values as offset
|
||||
{
|
||||
|
||||
@ -155,8 +155,15 @@ assert.throws(
|
||||
{
|
||||
code: 'ERR_OUT_OF_RANGE',
|
||||
name: 'RangeError',
|
||||
message: 'The value of "sourceStart" is out of range. ' +
|
||||
'It must be >= 0. Received -1'
|
||||
}
|
||||
);
|
||||
|
||||
// Copy throws if sourceStart is greater than length of source
|
||||
assert.throws(
|
||||
() => Buffer.allocUnsafe(5).copy(Buffer.allocUnsafe(5), 0, 100),
|
||||
{
|
||||
code: 'ERR_OUT_OF_RANGE',
|
||||
name: 'RangeError',
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user