]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: http-htx: Fix error handling during parsing http replies
authorChristopher Faulet <cfaulet@haproxy.com>
Mon, 14 Nov 2022 07:49:28 +0000 (08:49 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Wed, 16 Nov 2022 08:27:09 +0000 (09:27 +0100)
When an error is triggered during arguments parsing of an http reply (for
instance, from a "return" rule), while a log-format body was expected but
not evaluated yet, HAproxy crashes when the body log-format string is
released because it was not properly initialized.

The list used for the log-format string must be initialized earlier.

This patch should fix the issue #1925. It must be backported as far as 2.2.

src/http_htx.c

index 9b7ef6fcb0e39599acdc5d0b223814e416a49057..7a32c2156f6b64266a3e0aa3fd0558052b0dd539 100644 (file)
@@ -1571,6 +1571,7 @@ struct http_reply *http_parse_http_reply(const char **args, int *orig_arg, struc
                        fd = -1;
                        obj[objlen] = '\0';
                        reply->type = HTTP_REPLY_LOGFMT;
+                       LIST_INIT(&reply->body.fmt);
                        cur_arg++;
                }
                else if (strcmp(args[cur_arg], "lf-string") == 0) {
@@ -1587,6 +1588,7 @@ struct http_reply *http_parse_http_reply(const char **args, int *orig_arg, struc
                        obj = strdup(args[cur_arg]);
                        objlen = strlen(args[cur_arg]);
                        reply->type = HTTP_REPLY_LOGFMT;
+                       LIST_INIT(&reply->body.fmt);
                        cur_arg++;
                }
                else if (strcmp(args[cur_arg], "hdr") == 0) {