]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-http: Fix memory leak in http_server_response_add_permanent_header
authorAki Tuomi <aki.tuomi@open-xchange.com>
Thu, 23 Jan 2020 07:20:25 +0000 (09:20 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Wed, 5 Feb 2020 12:10:32 +0000 (12:10 +0000)
Key and value is duplicated twice and the first duplicates are
discarded without freeing.

Found by coverity.

src/lib-http/http-server-response.c

index 0e8b83cfb98dbf623ca6fda9bd2587d4e3ae8f57..dc9ffa8ebdf941d6f8c328e7e4b13d817fdff98c 100644 (file)
@@ -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);
 }