]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
daemon/http: additional guards from memleaks
authorTomas Krizek <tomas.krizek@nic.cz>
Mon, 5 Apr 2021 12:47:43 +0000 (14:47 +0200)
committerLukáš Ježek <lukas.jezek@nic.cz>
Fri, 16 Apr 2021 09:08:59 +0000 (11:08 +0200)
daemon/http.c

index 5782941e672049eb547c1eaacea3f67bc7ba4fa1..8bc3f8c946c974a68e0ad02c8396fb21c1bdfa7f 100644 (file)
@@ -275,6 +275,7 @@ static int begin_headers_callback(nghttp2_session *h2, const nghttp2_frame *fram
                        "[http] stream %d incomplete, refusing\n", ctx->incomplete_stream);
                refuse_stream(h2, stream_id);
        } else {
+               http_cleanup_stream(ctx);  // Free any leftover data and ensure pristine state
                ctx->incomplete_stream = stream_id;
        }
        return 0;
@@ -675,6 +676,7 @@ void http_free(struct http_ctx *ctx)
        if (!ctx)
                return;
 
+       http_cleanup_stream(ctx);
        queue_deinit(ctx->streams);
        nghttp2_session_del(ctx->h2);
        free(ctx);