diff --git a/daemon/http.c b/daemon/http.c index 5782941e672049eb547c1eaacea3f67bc7ba4fa1..8bc3f8c946c974a68e0ad02c8396fb21c1bdfa7f 100644 --- a/daemon/http.c +++ b/daemon/http.c @@ -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);