From 51210d64966caa0091e9c9cd260f1be1b19f7f4d Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Fri, 11 Jul 2025 05:57:50 -0700 Subject: [PATCH] nptl: PTHREAD_COND_INITIALIZER compatibility with pre-2.41 versions (bug 32786) [BZ #25847] The new initializer and struct layout does not initialize the __g_signals field in the old struct layout before the change in commit c36fc50781995e6758cae2b6927839d0157f213c ("nptl: Remove g_refs from condition variables"). Bring back fields at the end of struct __pthread_cond_s, so that they are again zero-initialized. (cherry picked from commit dbc5a50d12eff4cb3f782129029d04b8a76f58e7) Signed-off-by: Sunil Dora Tested-by: Carlos O'Donell Reviewed-by: Carlos O'Donell --- sysdeps/nptl/bits/thread-shared-types.h | 2 ++ sysdeps/nptl/pthread.h | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/sysdeps/nptl/bits/thread-shared-types.h b/sysdeps/nptl/bits/thread-shared-types.h index 59f9adc59a..3fe5d4afc0 100644 --- a/sysdeps/nptl/bits/thread-shared-types.h +++ b/sysdeps/nptl/bits/thread-shared-types.h @@ -99,6 +99,8 @@ struct __pthread_cond_s unsigned int __g1_orig_size; unsigned int __wrefs; unsigned int __g_signals[2]; + unsigned int __unused_initialized_1; + unsigned int __unused_initialized_2; }; typedef unsigned int __tss_t; diff --git a/sysdeps/nptl/pthread.h b/sysdeps/nptl/pthread.h index a43efa20d2..476cd0ed54 100644 --- a/sysdeps/nptl/pthread.h +++ b/sysdeps/nptl/pthread.h @@ -152,7 +152,7 @@ enum /* Conditional variable handling. */ -#define PTHREAD_COND_INITIALIZER { { {0}, {0}, {0, 0}, 0, 0, {0, 0} } } +#define PTHREAD_COND_INITIALIZER { { {0}, {0}, {0, 0}, 0, 0, {0, 0}, 0, 0 } } /* Cleanup buffers */ -- 2.47.2