Browse Source

stream: Never call decoder.end() multiple times

Fixes decoder.end() being called on every push(null). As the tls module
does this, corrupt stream data could potentially be added to the end.
v0.10.1-release
Gil Pedersen 12 years ago
committed by isaacs
parent
commit
615d809ac6
  1. 1
      lib/_stream_readable.js
  2. 4
      test/simple/test-stream2-set-encoding.js

1
lib/_stream_readable.js

@ -349,6 +349,7 @@ function onEofChunk(stream, state) {
state.buffer.push(chunk);
state.length += state.objectMode ? 1 : chunk.length;
}
state.decoder = null;
}
// if we've ended and we have some data left, then emit

4
test/simple/test-stream2-set-encoding.js

@ -163,6 +163,10 @@ test('setEncoding hex', function(t) {
// just kick it off.
tr.emit('readable');
process.on('exit', function() {
assert(!tr._readableState.decoder);
});
});
test('setEncoding hex with read(13)', function(t) {

Loading…
Cancel
Save