summaryrefslogtreecommitdiff
path: root/lib/internal/fs/promises.js
diff options
context:
space:
mode:
authorAdityaSrivast <yashsri421@gmail.com>2018-06-11 19:14:52 +0530
committerJoyee Cheung <joyeec9h3@gmail.com>2018-07-15 19:09:19 +0800
commit42bded83e8b71dda885c173d33b0190cdee3d0da (patch)
tree54272a8b7586424acc7abdebd0bcb9d1b963b8f5 /lib/internal/fs/promises.js
parentc7707a1ccaf4cb17e18f4bf11fb04a242d34bdff (diff)
downloadandroid-node-v8-42bded83e8b71dda885c173d33b0190cdee3d0da.tar.gz
android-node-v8-42bded83e8b71dda885c173d33b0190cdee3d0da.tar.bz2
android-node-v8-42bded83e8b71dda885c173d33b0190cdee3d0da.zip
fs: throw ERR_INVALID_ARG_VALUE when buffer being written is empty
Fixes: https://github.com/nodejs/node/issues/21193 PR-URL: https://github.com/nodejs/node/pull/21262 Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'lib/internal/fs/promises.js')
-rw-r--r--lib/internal/fs/promises.js6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/internal/fs/promises.js b/lib/internal/fs/promises.js
index fac430bbe2..f38a3e59be 100644
--- a/lib/internal/fs/promises.js
+++ b/lib/internal/fs/promises.js
@@ -12,6 +12,7 @@ const { Buffer, kMaxLength } = require('buffer');
const {
ERR_FS_FILE_TOO_LARGE,
ERR_INVALID_ARG_TYPE,
+ ERR_INVALID_ARG_VALUE,
ERR_METHOD_NOT_IMPLEMENTED
} = require('internal/errors').codes;
const { getPathFromURL } = require('internal/url');
@@ -208,6 +209,11 @@ async function read(handle, buffer, offset, length, position) {
if (length === 0)
return { bytesRead: length, buffer };
+ if (buffer.length === 0) {
+ throw new ERR_INVALID_ARG_VALUE('buffer', buffer,
+ 'is empty and cannot be written');
+ }
+
validateOffsetLengthRead(offset, length, buffer.length);
if (!Number.isSafeInteger(position))