]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: http-client: Reject any 101-switching-protocols response
authorChristopher Faulet <cfaulet@haproxy.com>
Tue, 8 Jul 2025 06:57:16 +0000 (08:57 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Wed, 9 Jul 2025 14:27:24 +0000 (16:27 +0200)
Protocol updages are not supported by the http-client. So report an error is
a 101-switching-protocols response is received. Of course, it is unexpected
because the API is not designed to support upgrades. But it is better to
properly handle this case.

This patch could be backported as far as 2.6. It depends on the commit
"BUG/MINOR: http-client: Ignore 1XX interim responses in non-HTX mode".

src/http_client.c

index a43022c90755e09a77acc6e0ef6f97351f11224b..cd41d359d0198adda4942ee745a08318773707cf 100644 (file)
@@ -649,8 +649,11 @@ void httpclient_applet_io_handler(struct appctx *appctx)
                                        goto out;
 
                                /* Skipp any 1XX interim responses */
-                               if (sl->info.res.status < 200 &&
-                                   (sl->info.res.status == 100 || sl->info.res.status >= 102)) {
+                               if (sl->info.res.status < 200) {
+                                       /* Upgrade are not supported. Report an error */
+                                       if (sl->info.res.status == 101)
+                                               goto error;
+
                                        while (blk) {
                                                enum htx_blk_type type = htx_get_blk_type(blk);
                                                uint32_t sz = htx_get_blksz(blk);