summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Fastabend <john.r.fastabend@intel.com>2009-09-25 17:11:44 +0400
committerDavid S. Miller <davem@davemloft.net>2009-09-27 07:16:11 +0400
commit5dba93aedfc6906b27791c4a1136b177beae25b7 (patch)
tree2d2493187f430245110bd640c8a5c990aaf865d7
parentfc482cc54e56bde012585905eb0f3565bec18ff5 (diff)
downloadlinux-5dba93aedfc6906b27791c4a1136b177beae25b7.tar.xz
net: fix nlmsg len size for skb when error bit is set.
Currently, the nlmsg->len field is not set correctly in netlink_ack() for ack messages that include the nlmsg of the error frame. This corrects the length field passed to __nlmsg_put to use the correct payload size. Signed-off-by: John Fastabend <john.r.fastabend@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/netlink/af_netlink.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
index a4bafbf15097..dd85320907cb 100644
--- a/net/netlink/af_netlink.c
+++ b/net/netlink/af_netlink.c
@@ -1788,7 +1788,7 @@ void netlink_ack(struct sk_buff *in_skb, struct nlmsghdr *nlh, int err)
}
rep = __nlmsg_put(skb, NETLINK_CB(in_skb).pid, nlh->nlmsg_seq,
- NLMSG_ERROR, sizeof(struct nlmsgerr), 0);
+ NLMSG_ERROR, payload, 0);
errmsg = nlmsg_data(rep);
errmsg->error = err;
memcpy(&errmsg->msg, nlh, err ? nlh->nlmsg_len : sizeof(*nlh));