mirror of
https://github.com/curl/curl.git
synced 2025-01-06 13:44:52 +08:00
nss: handshake callback during shutdown has no conn->bundle
The callback gets called because of the call to PR_Recv() done to attempt to avoid RST on the TCP connection. The conn->bundle pointer is already cleared at this point so avoid dereferencing it. Reported-by: Eric Musser Fixes #8341 Closes #8342
This commit is contained in:
parent
df66c7c5ba
commit
3267ac40da
@ -882,8 +882,14 @@ static void HandshakeCallback(PRFileDesc *sock, void *arg)
|
|||||||
!memcmp(ALPN_HTTP_1_1, buf, ALPN_HTTP_1_1_LENGTH)) {
|
!memcmp(ALPN_HTTP_1_1, buf, ALPN_HTTP_1_1_LENGTH)) {
|
||||||
conn->negnpn = CURL_HTTP_VERSION_1_1;
|
conn->negnpn = CURL_HTTP_VERSION_1_1;
|
||||||
}
|
}
|
||||||
Curl_multiuse_state(data, conn->negnpn == CURL_HTTP_VERSION_2 ?
|
|
||||||
BUNDLE_MULTIPLEX : BUNDLE_NO_MULTIUSE);
|
/* This callback might get called when PR_Recv() is used within
|
||||||
|
* close_one() during a connection shutdown. At that point there might not
|
||||||
|
* be any "bundle" associated with the connection anymore.
|
||||||
|
*/
|
||||||
|
if(conn->bundle)
|
||||||
|
Curl_multiuse_state(data, conn->negnpn == CURL_HTTP_VERSION_2 ?
|
||||||
|
BUNDLE_MULTIPLEX : BUNDLE_NO_MULTIUSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user