Closed
Description
- Version: v15.14.0
- Platform: Linux dev-laptop 5.8.10-050810-generic #202009171232 SMP Thu Sep 17 12:34:50 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
- Subsystem: crypto.randomFill
I've opened a PR about a typo bug : #38131
But I think that I found a bug.
What steps will reproduce the bug?
Run this code :
const crypto = require('crypto')
const buf = new Uint16Array(10)
crypto.randomFill(buf, 0, (err, res) => {
if (err) throw err;
console.log(buf.toString('hex'));
});
How often does it reproduce? Is there a required condition?
Always with the code above or TypedArray with size element > 1 Byte
What is the expected behavior?
a buffer fill with random bytes
What do you see instead?
I got this error :
RangeError [ERR_OUT_OF_RANGE]: The value of "size + offset" is out of range. It must be <= 20. Received 40
Additional information
I think there a problem with the assertSize
function because the first param is the number of element but we pass the number of bytes (ie: buf.byteLength
). The assertSize
function must be called only when the size parameter is passed to the randomFill
function.
I can open a PR if the issue is confirmed : arkerone@77bbef8