BUG/MINOR: http: Missing calloc return value check while parsing redirect rule
authorRemi Tricot-Le Breton <rlebreton@haproxy.com>
Wed, 19 May 2021 09:32:04 +0000 (11:32 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Mon, 31 May 2021 13:31:39 +0000 (15:31 +0200)
A memory allocation failure happening in http_parse_redirect_rule when
trying to allocate a redirect_rule structure would have resulted in a
crash. This function is only called during configuration parsing.

It was raised in GitHub issue #1233.
It could be backported to all stable branches.

(cherry picked from commit b6864a5b6fa1ea6eb224710d00c897105b9e2a46)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit e10a8f6b9c9437efe8b78239c92ed18775353d1c)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>

src/http_rules.c

index 2ac1fef..386683b 100644 (file)
@@ -372,6 +372,10 @@ struct redirect_rule *http_parse_redirect_rule(const char *file, int linenum, st
        }
 
        rule = calloc(1, sizeof(*rule));
+       if (!rule) {
+               memprintf(errmsg, "parsing [%s:%d]: out of memory.", file, linenum);
+               return NULL;
+       }
        rule->cond = cond;
        LIST_INIT(&rule->rdr_fmt);