From 83f2d5010221677267debdcfc484750316b91dbc Mon Sep 17 00:00:00 2001 From: Amaury Denoyelle Date: Fri, 31 Jul 2026 11:34:17 +0200 Subject: [PATCH] BUG/MINOR: server: check strdup return value on server ID Add missing checks on strdup() return value in _srv_parse_init() when generating server ID or server-template tmpl_info.prefix. This must be backported to all stable releases. --- src/server.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/server.c b/src/server.c index 0f586c24d..22c82d8ba 100644 --- a/src/server.c +++ b/src/server.c @@ -3740,10 +3740,22 @@ static int _srv_parse_init(struct server **srv, char **args, int *cur_arg, if (parse_flags & SRV_PARSE_DYNAMIC) newsrv->flags |= SRV_F_DYNAMIC; - if (!(parse_flags & SRV_PARSE_TEMPLATE)) + if (!(parse_flags & SRV_PARSE_TEMPLATE)) { newsrv->id = strdup(args[1]); - else + if (!newsrv->id) { + ha_alert("out of memory.\n"); + err_code |= ERR_ALERT | ERR_ABORT; + goto out; + } + } + else { newsrv->tmpl_info.prefix = strdup(args[1]); + if (!newsrv->tmpl_info.prefix) { + ha_alert("out of memory.\n"); + err_code |= ERR_ALERT | ERR_ABORT; + goto out; + } + } /* several ways to check the port component : * - IP => port=+0, relative (IPv4 only) -- 2.47.3