]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: http-htx: Fix a leak on error path during http reply parsing
authorChristopher Faulet <cfaulet@haproxy.com>
Thu, 21 May 2020 08:10:41 +0000 (10:10 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Mon, 25 May 2020 05:32:03 +0000 (07:32 +0200)
When "hdr" arguments of an http reply are parsed, the allocated header may leak
on error path. Adding it to the header list earlier fixes the issue.

This patch should partly fix the issue #645.

No backport needed.

src/http_htx.c

index e1b77933170462160c66e61ae4e177a0e8edfa91..3137fbebbf37c3c855af5e401ad070e102da753c 100644 (file)
@@ -1538,13 +1538,13 @@ struct http_reply *http_parse_http_reply(const char **args, int *orig_arg, struc
                                memprintf(errmsg, "'%s' : out of memory", args[cur_arg-1]);
                                goto error;
                        }
+                       LIST_ADDQ(&reply->hdrs, &hdr->list);
                        LIST_INIT(&hdr->value);
                        hdr->name = ist(strdup(args[cur_arg]));
                        if (!isttest(hdr->name)) {
                                memprintf(errmsg, "out of memory");
                                goto error;
                        }
-                       LIST_ADDQ(&reply->hdrs, &hdr->list);
                        if (!parse_logformat_string(args[cur_arg+1], px, &hdr->value, LOG_OPT_HTTP, cap, errmsg))
                                goto error;