diff options
author | Ruben Bridgewater <ruben@bridgewater.de> | 2019-04-02 00:01:29 +0200 |
---|---|---|
committer | Ruben Bridgewater <ruben@bridgewater.de> | 2019-04-15 17:21:34 +0200 |
commit | 693401d0ddd752e5fa47b882e56e252c42c94c0e (patch) | |
tree | fadabceddc0df7bd8d982bcd6c00cc11f3565e5d /test/parallel/test-buffer-write.js | |
parent | 2fed83dee884c3bddafa67bb53abf507db1a8ba3 (diff) | |
download | android-node-v8-693401d0ddd752e5fa47b882e56e252c42c94c0e.tar.gz android-node-v8-693401d0ddd752e5fa47b882e56e252c42c94c0e.tar.bz2 android-node-v8-693401d0ddd752e5fa47b882e56e252c42c94c0e.zip |
buffer: use stricter range checks
This validates the input to make sure the arguments do not overflow.
Before, if the input would overflow, it would cause the write to be
performt in the wrong spot / result in unexpected behavior.
Instead, just use a strict number validation.
PR-URL: https://github.com/nodejs/node/pull/27045
Fixes: https://github.com/nodejs/node/issues/27043
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Diffstat (limited to 'test/parallel/test-buffer-write.js')
-rw-r--r-- | test/parallel/test-buffer-write.js | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/test/parallel/test-buffer-write.js b/test/parallel/test-buffer-write.js index a0b86844d4..e99cdb358a 100644 --- a/test/parallel/test-buffer-write.js +++ b/test/parallel/test-buffer-write.js @@ -3,14 +3,17 @@ const common = require('../common'); const assert = require('assert'); -const outsideBounds = common.expectsError({ - code: 'ERR_BUFFER_OUT_OF_BOUNDS', - type: RangeError, - message: 'Attempt to write outside buffer bounds' -}, 2); - -assert.throws(() => Buffer.alloc(9).write('foo', -1), outsideBounds); -assert.throws(() => Buffer.alloc(9).write('foo', 10), outsideBounds); +[-1, 10].forEach((offset) => { + assert.throws( + () => Buffer.alloc(9).write('foo', offset), + { + code: 'ERR_OUT_OF_RANGE', + name: 'RangeError', + message: 'The value of "offset" is out of range. ' + + `It must be >= 0 && <= 9. Received ${offset}` + } + ); +}); const resultMap = new Map([ ['utf8', Buffer.from([102, 111, 111, 0, 0, 0, 0, 0, 0])], |