Skip to content

Commit 1a5dc6a

Browse files
mcollinaBethGriggs
authored andcommittedSep 19, 2019
http: check for existance in resetHeadersTimeoutOnReqEnd
socket.parser can be undefined under unknown circumstances. This is a fix for a bug I cannot reproduce but it is affecting people. Fixes: #26366 PR-URL: #26402 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
1 parent 5682e50 commit 1a5dc6a

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed
 

‎lib/_http_server.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -724,7 +724,7 @@ function resetHeadersTimeoutOnReqEnd() {
724724
const parser = this.socket.parser;
725725
// Parser can be null if the socket was destroyed
726726
// in that case, there is nothing to do.
727-
if (parser !== null) {
727+
if (parser) {
728728
parser.parsingHeadersStart = nowDate();
729729
}
730730
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
'use strict';
2+
3+
const common = require('../common');
4+
5+
const http = require('http');
6+
7+
const server = http.createServer(common.mustCall((req, res) => {
8+
res.writeHead(200, { 'Content-Type': 'text/plain' });
9+
res.write('okay', common.mustCall(() => {
10+
delete res.socket.parser;
11+
}));
12+
res.end();
13+
}));
14+
15+
server.listen(1337, '127.0.0.1');
16+
server.unref();
17+
18+
const req = http.request({
19+
port: 1337,
20+
host: '127.0.0.1',
21+
method: 'GET',
22+
});
23+
24+
req.end();

0 commit comments

Comments
 (0)
Please sign in to comment.