This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH V2] Initialize pad outside the conditional to prevent uninitialized data warnings.
- From: Patsy Franklin <pfrankli at redhat dot com>
- To: GNU C Library <libc-alpha at sourceware dot org>
- Date: Tue, 26 Jun 2018 11:13:18 -0400
- Subject: [PATCH V2] Initialize pad outside the conditional to prevent uninitialized data warnings.
Updated patch attached.
commit afcfe098889bb3e5e04c662e9047f20864d55f8e
Author: Patsy Franklin <pfrankli@redhat.com>
Date: Tue Jun 26 10:35:03 2018 -0400
In sem_open.c, pad was not initialized when __HAVE_64B_ATOMICS was
true. On some arches this caused valgrind to warn about uninitialized
bytes when the struct was written to the file system.
This patch moves the initialization of pad outside of the
conditional.
diff --git a/ChangeLog b/ChangeLog
index eaee727..83539e3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2018-06-26 Patsy Franklin <pfrankli@redhat.com>
+
+ * nptl/sem_open.c [!__HAVE_64B_ATOMICS] (sem_open): Don't update pad.
+ (sem_open): Set sem.newsem.pad to zero for valgrind.
+
2018-06-26 Florian Weimer <fweimer@redhat.com>
Run thread shutdown functions in an explicit order.
diff --git a/nptl/sem_open.c b/nptl/sem_open.c
index 1d7f142..c5389f6 100644
--- a/nptl/sem_open.c
+++ b/nptl/sem_open.c
@@ -215,10 +215,11 @@ sem_open (const char *name, int oflag, ...)
sem.newsem.data = value;
#else
sem.newsem.value = value << SEM_VALUE_SHIFT;
- /* pad is used as a mutex on pre-v9 sparc and ignored otherwise. */
- sem.newsem.pad = 0;
sem.newsem.nwaiters = 0;
#endif
+ /* pad is used as a mutex on pre-v9 sparc and ignored otherwise. */
+ sem.newsem.pad = 0;
+
/* This always is a shared semaphore. */
sem.newsem.private = FUTEX_SHARED;