Mercurial > hg > nginx-quic
changeset 7391:27559d4a5151
Stream: fixed possible use of a freed connection.
The session handler may result in session termination, thus a connection
pool (from which c->udp was allocated) may be destroyed.
author | Vladimir Homutov <vl@nginx.com> |
---|---|
date | Wed, 07 Nov 2018 13:22:14 +0300 |
parents | 2e7c4c3b0644 |
children | 04ff25798002 |
files | src/event/ngx_event_udp.c |
diffstat | 1 files changed, 6 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/event/ngx_event_udp.c +++ b/src/event/ngx_event_udp.c @@ -261,7 +261,10 @@ ngx_event_recvmsg(ngx_event_t *ev) rev->handler(rev); - c->udp->buffer = NULL; + if (c->udp) { + c->udp->buffer = NULL; + } + rev->ready = 0; goto next; @@ -561,6 +564,8 @@ ngx_delete_udp_connection(void *data) ngx_connection_t *c = data; ngx_rbtree_delete(&c->listening->rbtree, &c->udp->node); + + c->udp = NULL; }