summaryrefslogtreecommitdiff
path: root/zebra/kernel_netlink.c
diff options
context:
space:
mode:
Diffstat (limited to 'zebra/kernel_netlink.c')
-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;