From: Amaury Denoyelle Date: Fri, 31 Jul 2026 09:34:17 +0000 (+0200) Subject: BUG/MINOR: server: check strdup return value on server ID X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=83f2d5010221677267debdcfc484750316b91dbc;p=thirdparty%2Fhaproxy.git 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. --- 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)