diff options
author | Anatoli Papirovski <apapirovski@mac.com> | 2018-04-14 14:01:13 +0200 |
---|---|---|
committer | Anatoli Papirovski <apapirovski@mac.com> | 2018-04-17 16:08:31 +0200 |
commit | 95fafc0254f6636b7c7546ac63599c79a7182fd9 (patch) | |
tree | b0956c354beccaabef4a871e1d1011c3ef6e3574 /lib | |
parent | 4f2000f9fecbd7102403cc24b962f4e40994243a (diff) | |
download | android-node-v8-95fafc0254f6636b7c7546ac63599c79a7182fd9.tar.gz android-node-v8-95fafc0254f6636b7c7546ac63599c79a7182fd9.tar.bz2 android-node-v8-95fafc0254f6636b7c7546ac63599c79a7182fd9.zip |
http: fix undefined error in parser event
The current check for socket.server[kIncomingMessage] does not
account for the possibility of a socket.server that doesn't
have that property defined. Fix it.
PR-URL: https://github.com/nodejs/node/pull/20029
Fixes: https://github.com/nodejs/node/issues/19231
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Khaidi Chu <i@2333.moe>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/_http_common.js | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/_http_common.js b/lib/_http_common.js index bc65443eb3..7f53aca246 100644 --- a/lib/_http_common.js +++ b/lib/_http_common.js @@ -62,7 +62,8 @@ function parserOnHeaders(headers, url) { function parserOnHeadersComplete(versionMajor, versionMinor, headers, method, url, statusCode, statusMessage, upgrade, shouldKeepAlive) { - var parser = this; + const parser = this; + const { socket } = parser; if (!headers) { headers = parser._headers; @@ -75,10 +76,11 @@ function parserOnHeadersComplete(versionMajor, versionMinor, headers, method, } // Parser is also used by http client - var ParserIncomingMessage = parser.socket && parser.socket.server ? - parser.socket.server[kIncomingMessage] : IncomingMessage; + const ParserIncomingMessage = (socket && socket.server && + socket.server[kIncomingMessage]) || + IncomingMessage; - parser.incoming = new ParserIncomingMessage(parser.socket); + parser.incoming = new ParserIncomingMessage(socket); parser.incoming.httpVersionMajor = versionMajor; parser.incoming.httpVersionMinor = versionMinor; parser.incoming.httpVersion = `${versionMajor}.${versionMinor}`; |