BUG/MINOR: http: Missing calloc return value check while parsing tcp-request/tcp-response
A memory allocation failure happening in tcp_parse_tcp_req or
tcp_parse_tcp_rep when trying to allocate an act_rule structure would
have resulted in a crash. These functions are only called during
configuration parsing.
It was raised in GitHub issue #1233.
It could be backported to all stable branches.
(cherry picked from commit 2ca42b4656f60655a5295a66f321239faee2d9fe)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 8f86a29d20a094fede1b60695754aed3bebabe44)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
diff --git a/src/tcp_rules.c b/src/tcp_rules.c
index 250ffe7..a23b8b6 100644
--- a/src/tcp_rules.c
+++ b/src/tcp_rules.c
@@ -1035,6 +1035,10 @@
}
rule = calloc(1, sizeof(*rule));
+ if (!rule) {
+ memprintf(err, "parsing [%s:%d] : out of memory", file, line);
+ return -1;
+ }
LIST_INIT(&rule->list);
arg = 1;
where = 0;
@@ -1149,6 +1153,10 @@
}
rule = calloc(1, sizeof(*rule));
+ if (!rule) {
+ memprintf(err, "parsing [%s:%d] : out of memory", file, line);
+ return -1;
+ }
LIST_INIT(&rule->list);
arg = 1;
where = 0;