BUG/MINOR: cfgparse: Fail if the strdup() for `rule->be.name` for `use_backend` fails
authorTim Duesterhus <tim@bastelstu.be>
Sun, 3 Jan 2021 21:54:43 +0000 (22:54 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Wed, 6 Jan 2021 13:49:14 +0000 (14:49 +0100)
This patch fixes GitHub issue #1024.

I could track the `strdup` back to commit
3a1f5fda109fc56ae127d03eaf34ce027c9542e1 which is 1.9-dev8. It's probably not
worth the effort to backport it across this refactoring.

This patch should be backported to 1.9+.

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

src/cfgparse-listen.c

index 97a97e7..18e6770 100644 (file)
@@ -1509,6 +1509,10 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm)
                }
                rule->cond = cond;
                rule->be.name = strdup(args[1]);
+               if (!rule->be.name) {
+                       ha_alert("Out of memory error.\n");
+                       goto out;
+               }
                rule->line = linenum;
                rule->file = strdup(file);
                if (!rule->file) {