diff 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
line wrap: on
line diff
--- a/src/event/ngx_event_quic.c
+++ b/src/event/ngx_event_quic.c
@@ -2779,14 +2779,13 @@ ngx_quic_stream_cleanup_handler(void *da
     ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, 0, "quic stream cleanup");
 
     ngx_rbtree_delete(&qc->streams.tree, &qs->node);
+    ngx_quic_free_frames(pc, &qs->fs.frames);
 
     if (qc->closing) {
         ngx_post_event(pc->read, &ngx_posted_events);
         return;
     }
 
-    ngx_quic_free_frames(pc, &qs->fs.frames);
-
     if ((qs->id & 0x03) == NGX_QUIC_STREAM_UNIDIRECTIONAL) {
         /* do not send fin for client unidirectional streams */
         return;