about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSiddhesh Poyarekar <siddhesh@redhat.com>2015-01-29 10:30:09 +0530
committerSiddhesh Poyarekar <siddhesh@redhat.com>2015-01-29 10:30:09 +0530
commit3cb26316b45b23dc5cfecbafdc489b28c3a52029 (patch)
treed86b0d539dbc43fcfa3a3f74ab30cbbb707df343
parent527de9e4e3a8fc597dd59f7cd81a80fe8c6145b2 (diff)
downloadglibc-3cb26316b45b23dc5cfecbafdc489b28c3a52029.tar.gz
glibc-3cb26316b45b23dc5cfecbafdc489b28c3a52029.tar.xz
glibc-3cb26316b45b23dc5cfecbafdc489b28c3a52029.zip
Initialize nscd stats data [BZ #17892]
The padding bytes in the statsdata struct are not initialized, due to
which valgrind throws a warning:

==11384== Memcheck, a memory error detector
==11384== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
==11384== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
==11384== Command: nscd -d
==11384==
Fri 25 Apr 2014 10:34:53 AM CEST - 11384: handle_request: request received (Version = 2) from PID 11396
Fri 25 Apr 2014 10:34:53 AM CEST - 11384:       GETSTAT
==11384== Thread 6:
==11384== Syscall param socketcall.sendto(msg) points to uninitialised byte(s)
==11384==    at 0x4E4ACDC: send (in /lib64/libpthread-2.12.so)
==11384==    by 0x11AF6B: send_stats (in /usr/sbin/nscd)
==11384==    by 0x112F75: nscd_run_worker (in /usr/sbin/nscd)
==11384==    by 0x4E439D0: start_thread (in /lib64/libpthread-2.12.so)
==11384==    by 0x599AB6C: clone (in /lib64/libc-2.12.so)
==11384==  Address 0x15708395 is on thread 6's stack

Fix the warning by initializing the structure.
-rw-r--r--ChangeLog5
-rw-r--r--NEWS2
-rw-r--r--nscd/nscd_stat.c2
3 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 0340bbe411..faccea33b8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2015-01-29  Siddhesh Poyarekar <siddhesh@redhat.com>
+
+	[BZ #17892]
+	* nscd/nscd_stat.c (send_stats): Initialize DATA.
+
 2015-01-28  Martin Sebor  <msebor@redhat.com>
 
 	* math/README.libm-test: Clarify. Add "How to read the test output."
diff --git a/NEWS b/NEWS
index 1dcfc7d1c2..8e2729bddd 100644
--- a/NEWS
+++ b/NEWS
@@ -18,7 +18,7 @@ Version 2.21
   17657, 17658, 17664, 17665, 17668, 17682, 17702, 17717, 17719, 17722,
   17723, 17724, 17725, 17732, 17733, 17744, 17745, 17746, 17747, 17748,
   17775, 17777, 17780, 17781, 17782, 17791, 17793, 17796, 17797, 17803,
-  17806, 17834, 17844, 17848, 17868, 17869, 17870, 17885
+  17806, 17834, 17844, 17848, 17868, 17869, 17870, 17885, 17892.
 
 * A new semaphore algorithm has been implemented in generic C code for all
   machines. Previous custom assembly implementations of semaphore were
diff --git a/nscd/nscd_stat.c b/nscd/nscd_stat.c
index 0f1f3c00f4..7aaa21bb1a 100644
--- a/nscd/nscd_stat.c
+++ b/nscd/nscd_stat.c
@@ -94,6 +94,8 @@ send_stats (int fd, struct database_dyn dbs[lastdb])
   struct statdata data;
   int cnt;
 
+  memset (&data, 0, sizeof (data));
+
   memcpy (data.version, compilation, sizeof (compilation));
   data.debug_level = debug_level;
   data.runtime = time (NULL) - start_time;