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 e1b7793..3137fbe 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;