summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2017-10-02 10:42:53 -0400
committerDonald Sharp <sharpd@cumulusnetworks.com>2017-10-02 10:42:53 -0400
commitcbaca6a144e400cb6f9f8ee9dd58fe2af1ba9bdd (patch)
treee61c5dce93a88da50eab52c855c60dd735a4c85d
parent51dcd4c3760154739d359971c39f0746f2c536f1 (diff)
zebra: Fix valgrind report of unintialized data
When calling the kernel we are not properly initializing iov and msg on function startup. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
-rw-r--r--zebra/kernel_netlink.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/zebra/kernel_netlink.c b/zebra/kernel_netlink.c
index 015e11b3a5..a5c36b0dae 100644
--- a/zebra/kernel_netlink.c
+++ b/zebra/kernel_netlink.c
@@ -676,16 +676,21 @@ int netlink_talk(int (*filter)(struct sockaddr_nl *, struct nlmsghdr *, ns_id_t,
{
int status;
struct sockaddr_nl snl;
- struct iovec iov = {.iov_base = (void *)n, .iov_len = n->nlmsg_len};
- struct msghdr msg = {
- .msg_name = (void *)&snl,
- .msg_namelen = sizeof snl,
- .msg_iov = &iov,
- .msg_iovlen = 1,
- };
+ struct iovec iov;
+ struct msghdr msg;
int save_errno;
memset(&snl, 0, sizeof snl);
+ memset(&iov, 0, sizeof iov);
+ memset(&msg, 0, sizeof msg);
+
+ iov.iov_base = n;
+ iov.iov_len = n->nlmsg_len;
+ msg.msg_name = (void *)&snl;
+ msg.msg_namelen = sizeof snl;
+ msg.msg_iov = &iov;
+ msg.msg_iovlen = 1;
+
snl.nl_family = AF_NETLINK;
n->nlmsg_seq = ++nl->seq;