Tools: hv: use full nlmsghdr in netlink_send
authorOlaf Hering <olaf@aepfle.de>
Wed, 7 Aug 2013 13:45:12 +0000 (15:45 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 12 Aug 2013 22:44:57 +0000 (15:44 -0700)
There is no need to have a nlmsghdr pointer to another temporary buffer.
Instead use a full struct nlmsghdr.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
tools/hv/hv_kvp_daemon.c
tools/hv/hv_vss_daemon.c

index dca06a26ee2a65de6478044832a065ac5b230a51..8fd9ec66121c111b5bcfc29fd6e0e286f125ad67 100644 (file)
@@ -1392,23 +1392,18 @@ kvp_get_domain_name(char *buffer, int length)
 static int
 netlink_send(int fd, struct cn_msg *msg)
 {
-       struct nlmsghdr *nlh;
+       struct nlmsghdr nlh = { .nlmsg_type = NLMSG_DONE };
        unsigned int size;
        struct msghdr message;
-       char buffer[64];
        struct iovec iov[2];
 
        size = sizeof(struct cn_msg) + msg->len;
 
-       nlh = (struct nlmsghdr *)buffer;
-       nlh->nlmsg_seq = 0;
-       nlh->nlmsg_pid = getpid();
-       nlh->nlmsg_type = NLMSG_DONE;
-       nlh->nlmsg_len = NLMSG_LENGTH(size - sizeof(*nlh));
-       nlh->nlmsg_flags = 0;
+       nlh.nlmsg_pid = getpid();
+       nlh.nlmsg_len = NLMSG_LENGTH(size);
 
-       iov[0].iov_base = nlh;
-       iov[0].iov_len = sizeof(*nlh);
+       iov[0].iov_base = &nlh;
+       iov[0].iov_len = sizeof(nlh);
 
        iov[1].iov_base = msg;
        iov[1].iov_len = size;
index 7cd2544aa49b93358c1046285a7ee0336245e426..8611962c672c70dd282443a59cda62f10523ac0f 100644 (file)
@@ -105,23 +105,18 @@ static int vss_operate(int operation)
 
 static int netlink_send(int fd, struct cn_msg *msg)
 {
-       struct nlmsghdr *nlh;
+       struct nlmsghdr nlh = { .nlmsg_type = NLMSG_DONE };
        unsigned int size;
        struct msghdr message;
-       char buffer[64];
        struct iovec iov[2];
 
        size = sizeof(struct cn_msg) + msg->len;
 
-       nlh = (struct nlmsghdr *)buffer;
-       nlh->nlmsg_seq = 0;
-       nlh->nlmsg_pid = getpid();
-       nlh->nlmsg_type = NLMSG_DONE;
-       nlh->nlmsg_len = NLMSG_LENGTH(size - sizeof(*nlh));
-       nlh->nlmsg_flags = 0;
+       nlh.nlmsg_pid = getpid();
+       nlh.nlmsg_len = NLMSG_LENGTH(size);
 
-       iov[0].iov_base = nlh;
-       iov[0].iov_len = sizeof(*nlh);
+       iov[0].iov_base = &nlh;
+       iov[0].iov_len = sizeof(nlh);
 
        iov[1].iov_base = msg;
        iov[1].iov_len = size;