buffer: fix creating from zero-length ArrayBuffer

Fixes regression where creating a new Buffer from an
empty ArrayBuffer would fail.

Ref: 85ab4a5f12
PR-URL: https://github.com/nodejs/node/pull/7176
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>
Reviewed-By: Ron Korving <ron@ronkorving.nl>
This commit is contained in:
Ingvar Stepanyan 2016-06-06 13:06:56 +01:00 committed by Anna Henningsen
parent 0c73c9fece
commit 0e9e149da4
No known key found for this signature in database
GPG Key ID: D8B9F5AEAE84E4CF
2 changed files with 6 additions and 1 deletions

View File

@ -257,7 +257,7 @@ function fromArrayBuffer(obj, byteOffset, length) {
const maxLength = obj.byteLength - byteOffset;
if (maxLength <= 0)
if (maxLength < 0)
throw new RangeError("'offset' is out of bounds");
if (length === undefined) {

View File

@ -1459,3 +1459,8 @@ const ubuf = Buffer.allocUnsafeSlow(10);
assert(ubuf);
assert(ubuf.buffer);
assert.equal(ubuf.buffer.byteLength, 10);
// Regression test
assert.doesNotThrow(() => {
Buffer.from(new ArrayBuffer());
});