From: Aki Tuomi Date: Thu, 23 Jan 2020 07:20:25 +0000 (+0200) Subject: lib-http: Fix memory leak in http_server_response_add_permanent_header X-Git-Tag: 2.3.10~109 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dcbe43fb224857fc5099ae6df4388416aa0e5509;p=thirdparty%2Fdovecot%2Fcore.git lib-http: Fix memory leak in http_server_response_add_permanent_header Key and value is duplicated twice and the first duplicates are discarded without freeing. Found by coverity. --- diff --git a/src/lib-http/http-server-response.c b/src/lib-http/http-server-response.c index 0e8b83cfb9..dc9ffa8ebd 100644 --- a/src/lib-http/http-server-response.c +++ b/src/lib-http/http-server-response.c @@ -838,14 +838,12 @@ uoff_t http_server_response_get_total_size(struct http_server_response *resp) void http_server_response_add_permanent_header(struct http_server_response *resp, const char *key, const char *value) { - char *key_dup = i_strdup(key), *value_dup = i_strdup(value); - http_server_response_add_header(resp, key, value); if (!array_is_created(&resp->perm_headers)) i_array_init(&resp->perm_headers, 4); - key_dup = i_strdup(key); - value_dup = i_strdup(value); + char *key_dup = i_strdup(key); + char *value_dup = i_strdup(value); array_push_back(&resp->perm_headers, &key_dup); array_push_back(&resp->perm_headers, &value_dup); }