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	Tue Apr 21 12:06:24 2020 +0300
+++ b/src/event/ngx_event_quic.c	Mon Apr 20 18:32:46 2020 +0300
@@ -2779,14 +2779,13 @@
     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;