From 567d7ff923b75ad14e611ef53a0720c6c27fe266 Mon Sep 17 00:00:00 2001 From: Yoshiya Hinosawa Date: Tue, 28 Nov 2023 22:28:07 +0900 Subject: fix(ext/node): fix Buffer.copy when sourceStart > source.length (#21345) --- ext/node/polyfills/internal/buffer.mjs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'ext/node/polyfills/internal') diff --git a/ext/node/polyfills/internal/buffer.mjs b/ext/node/polyfills/internal/buffer.mjs index cd69a199f..4d50fe80f 100644 --- a/ext/node/polyfills/internal/buffer.mjs +++ b/ext/node/polyfills/internal/buffer.mjs @@ -1536,8 +1536,12 @@ Buffer.prototype.copy = function copy( sourceStart = 0; } else { sourceStart = toInteger(sourceStart, 0); - if (sourceStart < 0) { - throw new codes.ERR_OUT_OF_RANGE("sourceStart", ">= 0", sourceStart); + if (sourceStart < 0 || sourceStart > this.length) { + throw new codes.ERR_OUT_OF_RANGE( + "sourceStart", + `>= 0 && <= ${this.length}`, + sourceStart, + ); } if (sourceStart >= MAX_UINT32) { throw new codes.ERR_OUT_OF_RANGE( -- cgit v1.2.3