Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRobert Nagy <ronagy@icloud.com>2019-12-16 22:33:47 +0300
committerRuben Bridgewater <ruben@bridgewater.de>2019-12-20 03:38:35 +0300
commit20d009d2fdab313bb2cfb789881f1f9364474a62 (patch)
tree4032a98fd4ef40bd638e3b9943b6101c321f72fa /lib
parentdb9539bba4d62db3b73baf1575a9c3dfcd4d1f32 (diff)
stream: pipe should not swallow error
PR-URL: https://github.com/nodejs/node/pull/30993 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/_stream_readable.js4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/_stream_readable.js b/lib/_stream_readable.js
index d69e5aa5b35..63efff40373 100644
--- a/lib/_stream_readable.js
+++ b/lib/_stream_readable.js
@@ -798,7 +798,9 @@ Readable.prototype.pipe = function(dest, pipeOpts) {
unpipe();
dest.removeListener('error', onerror);
if (EE.listenerCount(dest, 'error') === 0) {
- if (!dest.destroyed) {
+ const s = dest._writableState || dest._readableState;
+ if (s && !s.errorEmitted) {
+ // User incorrectly emitted 'error' directly on the stream.
errorOrDestroy(dest, er);
} else {
dest.emit('error', er);