fs: handle fractional or NaN ReadStream buffer size

Fixes #2320.
This commit is contained in:
Ben Noordhuis 2011-12-13 16:30:53 +01:00
parent e90db17392
commit b1b3dc62ff
2 changed files with 10 additions and 1 deletions

View File

@ -1092,7 +1092,7 @@ ReadStream.prototype._read = function() {
// thread pool another read() finishes up the pool, and allocates a new
// one.
var thisPool = pool;
var toRead = Math.min(pool.length - pool.used, this.bufferSize);
var toRead = Math.min(pool.length - pool.used, ~~this.bufferSize);
var start = pool.used;
if (this.pos !== undefined) {

View File

@ -133,6 +133,15 @@ file5.on('end', function() {
assert.equal(file5.data, 'yz\n');
});
// https://github.com/joyent/node/issues/2320
var file6 = fs.createReadStream(rangeFile, {bufferSize: 1.23, start: 1});
file6.data = '';
file6.on('data', function(data) {
file6.data += data.toString('utf-8');
});
file6.on('end', function() {
assert.equal(file6.data, 'yz\n');
});
assert.throws(function() {
fs.createReadStream(rangeFile, {start: 10, end: 2});