This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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;
 

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]