summaryrefslogtreecommitdiff
path: root/test/parallel/test-fs-write-negativeoffset.js
diff options
context:
space:
mode:
authorJames M Snell <jasnell@gmail.com>2021-04-26 10:58:41 -0700
committerJames M Snell <jasnell@gmail.com>2021-04-28 11:04:42 -0700
commit4af15df013dfb17c6cee0ae947039d26fc5bc34e (patch)
tree1752fc010be6f858dcb5c430d2d5902f8d1244de /test/parallel/test-fs-write-negativeoffset.js
parent896e5af1fd92dd3aa53a73309aa14eb7dab9ff1a (diff)
downloadnode-new-4af15df013dfb17c6cee0ae947039d26fc5bc34e.tar.gz
src: fix validation of negative offset to avoid abort
Fixes: https://github.com/nodejs/node/issues/24640 Signed-off-by: James M Snell <jasnell@gmail.com> PR-URL: https://github.com/nodejs/node/pull/38421 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Nitzan Uziely <linkgoron@gmail.com> Reviewed-By: Darshan Sen <raisinten@gmail.com>
Diffstat (limited to 'test/parallel/test-fs-write-negativeoffset.js')
-rw-r--r--test/parallel/test-fs-write-negativeoffset.js55
1 files changed, 55 insertions, 0 deletions
diff --git a/test/parallel/test-fs-write-negativeoffset.js b/test/parallel/test-fs-write-negativeoffset.js
new file mode 100644
index 0000000000..b1c6ed9039
--- /dev/null
+++ b/test/parallel/test-fs-write-negativeoffset.js
@@ -0,0 +1,55 @@
+'use strict';
+
+// Tests that passing a negative offset does not crash the process
+
+const common = require('../common');
+
+const {
+ join,
+} = require('path');
+
+const {
+ closeSync,
+ open,
+ write,
+ writeSync,
+} = require('fs');
+
+const assert = require('assert');
+
+const tmpdir = require('../common/tmpdir');
+tmpdir.refresh();
+
+const filename = join(tmpdir.path, 'test.txt');
+
+open(filename, 'w+', common.mustSucceed((fd) => {
+ assert.throws(() => {
+ write(fd, Buffer.alloc(0), -1, common.mustNotCall());
+ }, {
+ code: 'ERR_OUT_OF_RANGE',
+ });
+ assert.throws(() => {
+ writeSync(fd, Buffer.alloc(0), -1);
+ }, {
+ code: 'ERR_OUT_OF_RANGE',
+ });
+ closeSync(fd);
+}));
+
+const filename2 = join(tmpdir.path, 'test2.txt');
+
+// Make sure negative length's don't cause aborts either
+
+open(filename2, 'w+', common.mustSucceed((fd) => {
+ assert.throws(() => {
+ write(fd, Buffer.alloc(0), 0, -1, common.mustNotCall());
+ }, {
+ code: 'ERR_OUT_OF_RANGE',
+ });
+ assert.throws(() => {
+ writeSync(fd, Buffer.alloc(0), 0, -1);
+ }, {
+ code: 'ERR_OUT_OF_RANGE',
+ });
+ closeSync(fd);
+}));