From: Michael Tremer Date: Thu, 5 Oct 2023 10:31:59 +0000 (+0000) Subject: cgroup: Do not use TLS for buffer that is longer than one page X-Git-Tag: 0.9.30~1539 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b4d087f3353a174be936da4cc959dc169491162a;p=pakfire.git cgroup: Do not use TLS for buffer that is longer than one page There seems to be a compiler bug that causes memory corruption in any spawned threads. This used to materialize mostly in downloading files when cURL spawned a thread to call the glibc resolver. See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81142 Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/cgroup.c b/src/libpakfire/cgroup.c index b3f7584d3..a63a7c211 100644 --- a/src/libpakfire/cgroup.c +++ b/src/libpakfire/cgroup.c @@ -34,8 +34,6 @@ #include #include -static __thread char bpf_log_buffer[BPF_LOG_BUF_SIZE]; - #define BUFFER_SIZE 64 * 1024 // Short form of mov, dst_reg = src_reg @@ -215,6 +213,8 @@ static void pakfire_cgroup_free(struct pakfire_cgroup* cgroup) { } static int pakfire_cgroup_setup_devices(struct pakfire_cgroup* cgroup) { + char bpf_log_buffer[BPF_LOG_BUF_SIZE]; + LIBBPF_OPTS(bpf_prog_load_opts, opts, // Log Buffer .log_buf = bpf_log_buffer,