diff options
author | ZYSzys <17367077526@163.com> | 2019-02-17 21:59:10 +0800 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2019-02-21 22:08:53 +0100 |
commit | 6fb7baf935442a1ceddcd0a585892456438f95aa (patch) | |
tree | 0cacb7315eeda5389a6a4005064c183b17a82c5a /test/parallel/test-buffer-slow.js | |
parent | dbfe14c8092ba914afc22d4ed8b0e1937c27ac25 (diff) | |
download | android-node-v8-6fb7baf935442a1ceddcd0a585892456438f95aa.tar.gz android-node-v8-6fb7baf935442a1ceddcd0a585892456438f95aa.tar.bz2 android-node-v8-6fb7baf935442a1ceddcd0a585892456438f95aa.zip |
buffer: harden validation of buffer allocation size
This makes using `NaN` as the buffer size throw an error.
Fixes: https://github.com/nodejs/node/issues/26151
PR-URL: https://github.com/nodejs/node/pull/26162
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Diffstat (limited to 'test/parallel/test-buffer-slow.js')
-rw-r--r-- | test/parallel/test-buffer-slow.js | 30 |
1 files changed, 9 insertions, 21 deletions
diff --git a/test/parallel/test-buffer-slow.js b/test/parallel/test-buffer-slow.js index cfea22b02c..99362add3b 100644 --- a/test/parallel/test-buffer-slow.js +++ b/test/parallel/test-buffer-slow.js @@ -43,29 +43,17 @@ try { assert.strictEqual(SlowBuffer('6').length, 6); assert.strictEqual(SlowBuffer(true).length, 1); -// Should create zero-length buffer if parameter is not a number -assert.strictEqual(SlowBuffer().length, 0); -assert.strictEqual(SlowBuffer(NaN).length, 0); -assert.strictEqual(SlowBuffer({}).length, 0); -assert.strictEqual(SlowBuffer('string').length, 0); - // should throw with invalid length const bufferMaxSizeMsg = common.expectsError({ code: 'ERR_INVALID_OPT_VALUE', type: RangeError, message: /^The value "[^"]*" is invalid for option "size"$/ -}, 2); -assert.throws(function() { - SlowBuffer(Infinity); -}, bufferMaxSizeMsg); -common.expectsError(function() { - SlowBuffer(-1); -}, { - code: 'ERR_INVALID_OPT_VALUE', - type: RangeError, - message: 'The value "-1" is invalid for option "size"' -}); - -assert.throws(function() { - SlowBuffer(buffer.kMaxLength + 1); -}, bufferMaxSizeMsg); +}, 7); + +assert.throws(() => SlowBuffer(), bufferMaxSizeMsg); +assert.throws(() => SlowBuffer(NaN), bufferMaxSizeMsg); +assert.throws(() => SlowBuffer({}), bufferMaxSizeMsg); +assert.throws(() => SlowBuffer('string'), bufferMaxSizeMsg); +assert.throws(() => SlowBuffer(Infinity), bufferMaxSizeMsg); +assert.throws(() => SlowBuffer(-1), bufferMaxSizeMsg); +assert.throws(() => SlowBuffer(buffer.kMaxLength + 1), bufferMaxSizeMsg); |