]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: httpclient: return NULL when no proxy available during httpclient_new()
authorWilliam Lallemand <wlallemand@haproxy.com>
Thu, 17 Oct 2024 09:57:29 +0000 (11:57 +0200)
committerWilliam Lallemand <wlallemand@haproxy.com>
Thu, 17 Oct 2024 09:57:29 +0000 (11:57 +0200)
Latest patches on the mworker rework skipped the httpclient_proxy
creation by accident. This is not supposed to happen because haproxy is
supposed to stop when the proxy creation failed, but it shows a flaw in
the API.

When the httpclient_proxy or the proxy used in parameter of
httpclient_new_from_proxy() is NULL, it will be dereferenced and cause a
crash.

The patch only returns a NULL when doing an httpclient_new() if the
proxy is not available.

Must be backported as far as 2.7.

src/http_client.c

index ff2ab4e85f154ea355fe371eed5200cc65a3eba7..f137a6e3bed8711e06596e486661863b85af8775 100644 (file)
@@ -628,6 +628,9 @@ struct httpclient *httpclient_new(void *caller, enum http_meth_t meth, struct is
 {
        struct httpclient *hc;
 
+       if (!httpclient_proxy)
+               return NULL;
+
        hc = calloc(1, sizeof(*hc));
        if (!hc)
                goto err;
@@ -655,6 +658,9 @@ struct httpclient *httpclient_new_from_proxy(struct proxy *px, void *caller, enu
 {
        struct httpclient *hc;
 
+       if (!px)
+               return NULL;
+
        hc = httpclient_new(caller, meth, url);
        if (!hc)
                return NULL;