diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2017-10-02 10:42:53 -0400 |
|---|---|---|
| committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2017-10-02 10:42:53 -0400 |
| commit | cbaca6a144e400cb6f9f8ee9dd58fe2af1ba9bdd (patch) | |
| tree | e61c5dce93a88da50eab52c855c60dd735a4c85d | |
| parent | 51dcd4c3760154739d359971c39f0746f2c536f1 (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.c | 19 |
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; |
