summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2016-06-08 14:34:20 +0200
committerVolker Lendecke <vl@samba.org>2016-06-08 18:34:27 +0200
commit0e2711b2a0adeda6873f9c8161b9b01a56ae7098 (patch)
tree57656fbaf09908ad6360927f6690397e53f83be6 /lib
parentc620bf5debd57a4a5d7f893a2b6383098ff7a919 (diff)
downloadsamba-0e2711b2a0adeda6873f9c8161b9b01a56ae7098.tar.gz
lib: Fix uninitialized read in msghdr_copy
Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Volker Lendecke <vl@samba.org> Autobuild-User(master): Volker Lendecke <vl@samba.org> Autobuild-Date(master): Wed Jun 8 18:34:27 CEST 2016 on sn-devel-144
Diffstat (limited to 'lib')
-rw-r--r--lib/util/msghdr.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/util/msghdr.c b/lib/util/msghdr.c
index 1aeadfc8d4d..0100b33e1f2 100644
--- a/lib/util/msghdr.c
+++ b/lib/util/msghdr.c
@@ -204,7 +204,14 @@ ssize_t msghdr_copy(struct msghdr_buf *msg, size_t msgsize,
bufsize = (msgsize > offsetof(struct msghdr_buf, buf)) ?
msgsize - offsetof(struct msghdr_buf, buf) : 0;
- fd_len = msghdr_prep_fds(&msg->msg, msg->buf, bufsize, fds, num_fds);
+ if (msg != NULL) {
+ msg->msg = (struct msghdr) {};
+
+ fd_len = msghdr_prep_fds(&msg->msg, msg->buf, bufsize,
+ fds, num_fds);
+ } else {
+ fd_len = msghdr_prep_fds(NULL, NULL, bufsize, fds, num_fds);
+ }
if (fd_len == -1) {
return -1;