From abb9c4d21b11684fc40443958a7e182834c44c0b Mon Sep 17 00:00:00 2001
From: Vladimir Kurchatkin <vladimir.kurchatkin@gmail.com>
Date: Sat, 2 Apr 2016 02:39:25 +0300
Subject: [PATCH] buffer: don't set `kNoZeroFill` flag in allocUnsafe

If `kNoZeroFill` is set here, it won't be reset in case of
pooled allocation. In case of "slow" allocation it will be
set later anyway.

Fixes: https://github.com/nodejs/node/issues/6006
---
 lib/buffer.js                            |  2 --
 test/parallel/test-buffer-safe-unsafe.js | 12 +++++++++++-
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/lib/buffer.js b/lib/buffer.js
index 7150debf357dac..453652a0b6816a 100644
--- a/lib/buffer.js
+++ b/lib/buffer.js
@@ -163,8 +163,6 @@ Buffer.alloc = function(size, fill, encoding) {
 Buffer.allocUnsafe = function(size) {
   if (typeof size !== 'number')
     throw new TypeError('"size" argument must be a number');
-  if (size > 0)
-    flags[kNoZeroFill] = 1;
   return allocate(size);
 };
 
diff --git a/test/parallel/test-buffer-safe-unsafe.js b/test/parallel/test-buffer-safe-unsafe.js
index 6646f760564432..9f8b6b7410b8fb 100644
--- a/test/parallel/test-buffer-safe-unsafe.js
+++ b/test/parallel/test-buffer-safe-unsafe.js
@@ -7,8 +7,18 @@ const safe = Buffer.alloc(10);
 
 function isZeroFilled(buf) {
   for (let n = 0; n < buf.length; n++)
-    if (buf[n] > 0) return false;
+    if (buf[n] !== 0) return false;
   return true;
 }
 
 assert(isZeroFilled(safe));
+
+// Test that unsafe allocations doesn't affect subsequent safe allocations
+Buffer.allocUnsafe(10);
+assert(isZeroFilled(new Float64Array(10)));
+
+new Buffer(10);
+assert(isZeroFilled(new Float64Array(10)));
+
+Buffer.allocUnsafe(10);
+assert(isZeroFilled(Buffer.alloc(10)));