summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Ruppert <idl0r@gentoo.org>2023-02-14 17:13:14 +0100
committerChristian Ruppert <idl0r@gentoo.org>2023-02-14 17:13:38 +0100
commit5440524943be3eef14c2912ae789fa2b61e75380 (patch)
treed93d5a19e5f6eab5435d6b90283246e4a159ded9 /net-proxy/haproxy/files
parentnet-proxy/haproxy: Bumps to fix CVE-2023-25725 (diff)
downloadgentoo-5440524943be3eef14c2912ae789fa2b61e75380.tar.gz
gentoo-5440524943be3eef14c2912ae789fa2b61e75380.tar.bz2
gentoo-5440524943be3eef14c2912ae789fa2b61e75380.zip
net-proxy/haproxy: Fix 2.4.22 re https://github.com/haproxy/haproxy/issues/2009
Signed-off-by: Christian Ruppert <idl0r@gentoo.org>
Diffstat (limited to 'net-proxy/haproxy/files')
-rw-r--r--net-proxy/haproxy/files/haproxy-2.4.22-hpack.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/net-proxy/haproxy/files/haproxy-2.4.22-hpack.patch b/net-proxy/haproxy/files/haproxy-2.4.22-hpack.patch
new file mode 100644
index 000000000000..f744eccfaba9
--- /dev/null
+++ b/net-proxy/haproxy/files/haproxy-2.4.22-hpack.patch
@@ -0,0 +1,49 @@
+From 494ae0c35c883632faf1d22b54083d3e97a7c129 Mon Sep 17 00:00:00 2001
+From: Aurelien DARRAGON <adarragon@haproxy.com>
+Date: Wed, 25 Jan 2023 16:35:00 +0100
+Subject: [PATCH] DEV: hpack: fix `trash` build regression
+
+Since 7d84439 ("BUILD: hpack: include global.h for the trash that is needed
+in debug mode"), hpack decode tool fails to compile on targets that enable
+USE_THREAD. (ie: linux-glibc target as reported by Christian Ruppert)
+
+When building hpack devtool, we are including src/hpack-dec.c as a dependency.
+src/hpack-dec.c relies on the global trash whe debug mode is enabled.
+But as we're building hpack tool with a limited scope of haproxy
+sources, global trash (which is declared in src/chunk.c) is not available.
+Thus, src/hpack-dec.c relies on a local 'trash' variable declared within
+dev/hpack/decode.c
+
+This used to work fine until 7d84439.
+But now that global.h is explicitely included in src/hpack-dec.c,
+trash variable definition from decode.c conflicts with the one from global.h:
+
+ In file included from include/../src/hpack-dec.c:35,
+ from dev/hpack/decode.c:87:
+ include/haproxy/global.h:52:35: error: thread-local declaration of 'trash' follows non-thread-local declaration
+ 52 | extern THREAD_LOCAL struct buffer trash;
+
+Adding THREAD_LOCAL attribute to 'decode.c' local trash variable definition
+makes the compiler happy again.
+
+This should fix GH issue #2009
+---
+ dev/hpack/decode.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/dev/hpack/decode.c b/dev/hpack/decode.c
+index ae825120f..13c95c77a 100644
+--- a/dev/hpack/decode.c
++++ b/dev/hpack/decode.c
+@@ -30,7 +30,7 @@ uint8_t buf[MAX_RQ_SIZE];
+ char trash_buf[MAX_RQ_SIZE];
+ char tmp_buf[MAX_RQ_SIZE];
+
+-struct buffer trash = { .area = trash_buf, .data = 0, .size = sizeof(trash_buf) };
++THREAD_LOCAL struct buffer trash = { .area = trash_buf, .data = 0, .size = sizeof(trash_buf) };
+ struct buffer tmp = { .area = tmp_buf, .data = 0, .size = sizeof(tmp_buf) };
+
+ /* displays a <len> long memory block at <buf>, assuming first byte of <buf>
+--
+2.34.1
+