]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: listener: fix incorrect return on out-of-memory
authorWilly Tarreau <w@1wt.eu>
Sat, 16 Oct 2021 12:45:29 +0000 (14:45 +0200)
committerWilly Tarreau <w@1wt.eu>
Sat, 16 Oct 2021 12:45:29 +0000 (14:45 +0200)
When the clone_listener() function was added in commit 59a877dfd
("MINOR: listeners: add clone_listener() to duplicate listeners at
boot time"), a stupid bug was introduced when splitting the error
path because while the first case where calloc fails will leave NULL
in the output value, the other cases will return the pointer to a
freed area. This was reported by Coverity in issue #1416.

In practice nobody will face it (out-of-memory while checking config),
but let's fix it.

No backport is needed.

src/listener.c

index f16ba2d0ac17428bddd14e304110c2e95e08f71c..5c2eb210a9c6aa8616101f0686e87ad2598a5517 100644 (file)
@@ -709,7 +709,7 @@ struct listener *clone_listener(struct listener *src)
  oom2:
        free(l);
  oom1:
-       return l;
+       return NULL;
 }
 
 /* Delete a listener from its protocol's list of listeners. The listener's