aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/internal/crypto/random.js7
1 files changed, 3 insertions, 4 deletions
diff --git a/lib/internal/crypto/random.js b/lib/internal/crypto/random.js
index 257b00a9ce..f42458aa78 100644
--- a/lib/internal/crypto/random.js
+++ b/lib/internal/crypto/random.js
@@ -51,7 +51,7 @@ function randomBytes(size, cb) {
const buf = Buffer.alloc(size);
- if (!cb) return handleError(buf, 0, size);
+ if (!cb) return handleError(_randomBytes(buf, 0, size), buf);
const wrap = new AsyncWrap(Providers.RANDOMBYTESREQUEST);
wrap.ondone = (ex) => { // Retains buf while request is in flight.
@@ -77,7 +77,7 @@ function randomFillSync(buf, offset = 0, size) {
size = assertSize(size, elementSize, offset, buf.byteLength);
}
- return handleError(buf, offset, size);
+ return handleError(_randomBytes(buf, offset, size), buf);
}
function randomFill(buf, offset, size, cb) {
@@ -115,8 +115,7 @@ function randomFill(buf, offset, size, cb) {
_randomBytes(buf, offset, size, wrap);
}
-function handleError(buf, offset, size) {
- const ex = _randomBytes(buf, offset, size);
+function handleError(ex, buf) {
if (ex) throw ex;
return buf;
}