Explicitly stop reading before closing the nmtcpsocket

When closing the socket that is actively reading from the stream, the
read_cb() could be called between uv_close() and close callback when the
server socket has been already detached hence using sock->statichandle
after it has been already freed.

(cherry picked from commit 97b33e5bde)
This commit is contained in:
Ondřej Surý 2020-10-20 20:57:19 +02:00 committed by Evan Hunt
parent 63e923364f
commit e18f3fd003

View file

@ -1115,6 +1115,9 @@ tcp_close_direct(isc_nmsocket_t *sock) {
if (sock->quota != NULL) {
isc_quota_detach(&sock->quota);
}
uv_read_stop((uv_stream_t *)&sock->uv_handle.handle);
if (sock->timer_initialized) {
sock->timer_initialized = false;
uv_timer_stop(&sock->timer);