Mercurial > hg > nginx-quic
comparison src/event/ngx_event_quic.c @ 7825:d42b50d239f4 quic
Fixed memory leak with reordered stream frames.
author | Vladimir Homutov <vl@nginx.com> |
---|---|
date | Mon, 20 Apr 2020 18:32:46 +0300 |
parents | 4e4485793418 |
children | 47dac6e0521a |
comparison
equal
deleted
inserted
replaced
7824:a5141e6b3214 | 7825:d42b50d239f4 |
---|---|
2777 qc = pc->quic; | 2777 qc = pc->quic; |
2778 | 2778 |
2779 ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, 0, "quic stream cleanup"); | 2779 ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, 0, "quic stream cleanup"); |
2780 | 2780 |
2781 ngx_rbtree_delete(&qc->streams.tree, &qs->node); | 2781 ngx_rbtree_delete(&qc->streams.tree, &qs->node); |
2782 ngx_quic_free_frames(pc, &qs->fs.frames); | |
2782 | 2783 |
2783 if (qc->closing) { | 2784 if (qc->closing) { |
2784 ngx_post_event(pc->read, &ngx_posted_events); | 2785 ngx_post_event(pc->read, &ngx_posted_events); |
2785 return; | 2786 return; |
2786 } | 2787 } |
2787 | |
2788 ngx_quic_free_frames(pc, &qs->fs.frames); | |
2789 | 2788 |
2790 if ((qs->id & 0x03) == NGX_QUIC_STREAM_UNIDIRECTIONAL) { | 2789 if ((qs->id & 0x03) == NGX_QUIC_STREAM_UNIDIRECTIONAL) { |
2791 /* do not send fin for client unidirectional streams */ | 2790 /* do not send fin for client unidirectional streams */ |
2792 return; | 2791 return; |
2793 } | 2792 } |