]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MEDIUM: qpack: allow 6xx..9xx status codes
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Mon, 29 Jan 2024 12:45:48 +0000 (13:45 +0100)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Mon, 29 Jan 2024 14:40:19 +0000 (15:40 +0100)
HTTP status codes outside of 100..599 are considered invalid in HTTP
RFC9110. However, it is explicitely stated that range 600..999 is often
used for internal communication so in practice haproxy must be lenient
with it.

Before this patch, QPACK encoder rejected these values. This resulted in
a connection error. Fix this by extending the range of allowed values
from 100 to 999.

This is linked to github issue #2422. Once again, thanks to @yokim-git
for his help here.

This must be backported up to 2.6.

src/qpack-enc.c

index 59bb97fb663f5315ba4fd12ffde8b3df812b051a..006f1f1a9749e7d2a5e7de611691e956e68605cb 100644 (file)
@@ -69,7 +69,7 @@ int qpack_encode_int_status(struct buffer *out, unsigned int status)
 {
        int status_size, idx = 0;
 
-       if (status < 100 || status > 599)
+       if (status < 100 || status > 999)
                return 1;
 
        switch (status) {