buffer: fix single digit hex string handling
Fixes single digit hex strings not raising TypeError on Buffer creation. Fixes: https://github.com/nodejs/node/issues/6770 PR-URL: https://github.com/nodejs/node/pull/6775 Reviewed-By: Anna Henningsen <anna@addaleax.net>
This commit is contained in:
parent
b49df88916
commit
05e2acb428
@ -225,11 +225,11 @@ function fromString(string, encoding) {
|
||||
if (!Buffer.isEncoding(encoding))
|
||||
throw new TypeError('"encoding" must be a valid string encoding');
|
||||
|
||||
var length = byteLength(string, encoding);
|
||||
|
||||
if (length === 0)
|
||||
if (string.length === 0)
|
||||
return Buffer.alloc(0);
|
||||
|
||||
var length = byteLength(string, encoding);
|
||||
|
||||
if (length >= (Buffer.poolSize >>> 1))
|
||||
return binding.createFromString(string, encoding);
|
||||
|
||||
|
@ -749,6 +749,15 @@ for (let i = 0; i < 256; i++) {
|
||||
assert.equal(hexb2[i], hexb[i]);
|
||||
}
|
||||
|
||||
// Test single hex character throws TypeError
|
||||
// - https://github.com/nodejs/node/issues/6770
|
||||
assert.throws(function() {
|
||||
Buffer.from('A', 'hex');
|
||||
}, TypeError);
|
||||
|
||||
// Test single base64 char encodes as 0
|
||||
assert.strictEqual(Buffer.from('A', 'base64').length, 0);
|
||||
|
||||
{
|
||||
// test an invalid slice end.
|
||||
console.log('Try to slice off the end of the buffer');
|
||||
|
Loading…
x
Reference in New Issue
Block a user