[master] 65a42d183 param: Restore old default h2_max_header_list_size

Dridi Boukelmoune dridi.boukelmoune at gmail.com
Thu Apr 4 18:09:07 UTC 2024


commit 65a42d183eb3da84f5f6ba3150d607092354f450
Author: Dridi Boukelmoune <dridi.boukelmoune at gmail.com>
Date:   Thu Apr 4 19:18:12 2024 +0200

    param: Restore old default h2_max_header_list_size
    
    Except that the old default value replaces the maximum one. Aligning
    with the literal maximum value for the underlying HTTP/2 setting breaks
    32bit builds because the byte tweaks take a detour via ssize_t. When it
    casts to uintmax_t the MSB is propagated all the way, triggering the
    following error at build time:
    
    > 4294967295b is too large for this architecture.
    
    Instead of fighting a tweak that is clearly wrong, grant h2 clients a
    maximum of 2GB of uncompressed headers (instead of 4GB) that will never
    happen, because h2 is overall much wronger.

diff --git a/include/tbl/params.h b/include/tbl/params.h
index 1b50d4cda..938b00f4b 100644
--- a/include/tbl/params.h
+++ b/include/tbl/params.h
@@ -1288,7 +1288,7 @@ PARAM_SIMPLE(
 	/* name */	h2_max_header_list_size,
 	/* type */	bytes_u,
 	/* min */	"0b",
-	/* max */	"4294967295b",
+	/* max */	"2147483647b", /* NB: not the RFC maximum */
 	/* def */	"0b",
 	/* units */	"bytes",
 	/* descr */


More information about the varnish-commit mailing list