summaryrefslogtreecommitdiff
path: root/lib/http2.c
diff options
context:
space:
mode:
authorKamil Dudka <kdudka@redhat.com>2021-04-30 18:18:02 +0200
committerDaniel Stenberg <daniel@haxx.se>2021-05-01 23:40:14 +0200
commit3a6058cb976981ec1db870f9657c73c9a1162822 (patch)
treea4742406e3f9f53687300d99e2157ee4a4961f5e /lib/http2.c
parent31931704707324af4b4edb24cc877829f7e9949e (diff)
downloadcurl-3a6058cb976981ec1db870f9657c73c9a1162822.tar.gz
http2: fix a resource leak in push_promise()
... detected by Coverity: Error: RESOURCE_LEAK (CWE-772): lib/http2.c:532: alloc_fn: Storage is returned from allocation function "duphandle". lib/http2.c:532: var_assign: Assigning: "newhandle" = storage returned from "duphandle(data)". lib/http2.c:552: noescape: Resource "newhandle" is not freed or pointed-to in "set_transfer_url". lib/http2.c:555: leaked_storage: Variable "newhandle" going out of scope leaks the storage it points to. Closes #6986
Diffstat (limited to 'lib/http2.c')
-rw-r--r--lib/http2.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/http2.c b/lib/http2.c
index ad7ae1d1b..d59571ed2 100644
--- a/lib/http2.c
+++ b/lib/http2.c
@@ -581,6 +581,7 @@ static int push_promise(struct Curl_easy *data,
rv = set_transfer_url(newhandle, &heads);
if(rv) {
+ (void)Curl_close(&newhandle);
rv = CURL_PUSH_DENY;
goto fail;
}