From 9cadfb54a6899b7d704be7a022b95a3bec31c43f Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Mon, 12 Jan 2015 17:47:19 +0100 Subject: [PATCH] lib: Fix uninitialized read in msghdr_copy Signed-off-by: Volker Lendecke Reviewed-by: Amitay Isaacs Reviewed-by: Jeremy Allison --- lib/util/msghdr.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/util/msghdr.c b/lib/util/msghdr.c index 1aeadfc..a0bb98c 100644 --- a/lib/util/msghdr.c +++ b/lib/util/msghdr.c @@ -204,7 +204,21 @@ 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; -- 2.8.0.rc3.226.g39d4020