]> zoso.dev Git - buffer.git/commitdiff
Throw error on alloc() if value can't be encoded
authorVolker Mische <volker.mische@gmail.com>
Sat, 20 Jan 2018 23:01:16 +0000 (00:01 +0100)
committerVolker Mische <volker.mische@gmail.com>
Sun, 21 Jan 2018 02:03:06 +0000 (03:03 +0100)
index.js
test/node/test-buffer-alloc.js
test/node/test-buffer-fill.js

index b30bb96872b0c53cbef4e9d30bfed1fd600482e8..042a7875cdaa22e0ebd922b53acee4d4ab94c1dd 100644 (file)
--- a/index.js
+++ b/index.js
@@ -1552,6 +1552,10 @@ Buffer.prototype.fill = function fill (val, start, end, encoding) {
       ? val
       : new Buffer(val, encoding)
     var len = bytes.length
+    if (len === 0) {
+      throw new TypeError('The value "' + val +
+        '" is invalid for argument "value"')
+    }
     for (i = 0; i < end - start; ++i) {
       this[i + start] = bytes[i % len]
     }
index 32a9763bb6d2daaeef9cac169831e804f78bee31..d7d4ee46f301c61e2ad4576395826eb79aad0e55 100644 (file)
@@ -1011,25 +1011,25 @@ assert.strictEqual(Buffer.prototype.toLocaleString, Buffer.prototype.toString);
   var buf = Buffer.from('test');
   assert.strictEqual(buf.toLocaleString(), buf.toString());
 }
-/*
+
 common.expectsError(() => {
   Buffer.alloc(0x1000, 'This is not correctly encoded', 'hex');
 }, {
   code: 'ERR_INVALID_ARG_VALUE',
   type: TypeError
 });
-
+/*
 common.expectsError(() => {
   Buffer.alloc(0x1000, 'c', 'hex');
 }, {
   code: 'ERR_INVALID_ARG_VALUE',
   type: TypeError
 });
-
+*/
 common.expectsError(() => {
   Buffer.alloc(1, Buffer.alloc(0));
 }, {
   code: 'ERR_INVALID_ARG_VALUE',
   type: TypeError
 });
-*/
+
index 7138094a72cb4e0a89b53baf5659c2e665abde5d..eb88b8363af9dfd790559d2102c007d4458ebb5b 100644 (file)
@@ -1,6 +1,6 @@
 'use strict';
 var Buffer = require('../../').Buffer;
-
+const common = require('../common');
 
 
 var assert = require('assert');
@@ -137,10 +137,24 @@ testBufs('c8a26161', 8, 1, 'hex');
 testBufs('61c8b462c8b563c8b6', 4, -1, 'hex');
 testBufs('61c8b462c8b563c8b6', 4, 1, 'hex');
 testBufs('61c8b462c8b563c8b6', 12, 1, 'hex');
-// Make sure this operation doesn't go on forever
-buf1.fill('yKJh', 'hex');
-assert.throws(() => buf1.fill('\u0222', 'hex'));
 
+common.expectsError(() => {
+  const buf = Buffer.allocUnsafe(SIZE);
+
+  buf.fill('yKJh', 'hex');
+}, {
+  code: 'ERR_INVALID_ARG_VALUE',
+  type: TypeError
+});
+
+common.expectsError(() => {
+  const buf = Buffer.allocUnsafe(SIZE);
+
+  buf.fill('\u0222', 'hex');
+}, {
+  code: 'ERR_INVALID_ARG_VALUE',
+  type: TypeError
+});
 
 // BASE64
 testBufs('YWJj', 'ucs2');