comparison src/event/ngx_event_quic.c @ 8348: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
8347:a5141e6b3214 8348: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 }