From 34cdc5e191784cdae671a6c337fd4385522855af Mon Sep 17 00:00:00 2001 From: William Lallemand Date: Fri, 19 Sep 2025 17:13:24 +0200 Subject: [PATCH] MINOR: acme: check acme-vars allocation during escaping Handle allocation properly during acme-vars parsing. Check if we have a allocation failure in both the malloc and the realloc and emits an error if that's the case. --- src/acme.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/acme.c b/src/acme.c index bc16ced4b..7fb270a90 100644 --- a/src/acme.c +++ b/src/acme.c @@ -455,20 +455,29 @@ static int cfg_parse_acme_kws(char **args, int section_type, struct proxy *curpx goto out; len = strlen(src); - dst = realloc(dst, len + 1); + dst = malloc(len + 1); + if (!dst) + goto vars_end; /* escape the " character */ while (*src) { if (*src == '"') { + char *dst2 = NULL; + len++; - dst = realloc(dst, len + 1); + dst2 = realloc(dst, len + 1); + if (!dst2) { + ha_free(&dst); + goto vars_end; + } + dst = dst2; dst[i++] = '\\'; /* add escaping */ } dst[i++] = *src; src++; } dst[i] = '\0'; - +vars_end: cur_acme->vars = dst; if (!cur_acme->vars) { err_code |= ERR_ALERT | ERR_FATAL;