Skip to content

Commit e65fa39

Browse files
authored
fix: onParserTimeout potentially accessing undefined (#4758)
In cases where onParserTimeout is called with a weak reference that has already been collected it was throwing an error like: Cannot destructure property 'socket' of 'parser.deref(...)' as it is undefined - Fixes #4755
1 parent f1d50a2 commit e65fa39

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

lib/dispatcher/client-h1.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -735,8 +735,13 @@ class Parser {
735735
}
736736
}
737737

738-
function onParserTimeout (parser) {
739-
const { socket, timeoutType, client, paused } = parser.deref()
738+
function onParserTimeout (parserWeakRef) {
739+
const parser = parserWeakRef.deref()
740+
if (!parser) {
741+
return
742+
}
743+
744+
const { socket, timeoutType, client, paused } = parser
740745

741746
if (timeoutType === TIMEOUT_HEADERS) {
742747
if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) {

0 commit comments

Comments
 (0)