]> git.kaiwu.me - nginx.git/commitdiff
Fixed memory leak with reordered stream frames.
authorVladimir Homutov <vl@nginx.com>
Mon, 20 Apr 2020 15:32:46 +0000 (18:32 +0300)
committerVladimir Homutov <vl@nginx.com>
Mon, 20 Apr 2020 15:32:46 +0000 (18:32 +0300)
src/event/ngx_event_quic.c

index f3b76b3ee2b38c7c9dc66c5d5b01e4d0825594c8..9bc7aab0930d72cc453d11a327c416dd742a4fd9 100644 (file)
@@ -2779,14 +2779,13 @@ ngx_quic_stream_cleanup_handler(void *data)
     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;