diff options
author | John Fastabend <john.r.fastabend@intel.com> | 2009-09-25 09:11:44 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-09-26 23:16:11 -0400 |
commit | 5dba93aedfc6906b27791c4a1136b177beae25b7 (patch) | |
tree | 2d2493187f430245110bd640c8a5c990aaf865d7 /net | |
parent | fc482cc54e56bde012585905eb0f3565bec18ff5 (diff) |
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>
Diffstat (limited to 'net')
-rw-r--r-- | net/netlink/af_netlink.c | 2 |
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) | |||
1788 | } | 1788 | } |
1789 | 1789 | ||
1790 | rep = __nlmsg_put(skb, NETLINK_CB(in_skb).pid, nlh->nlmsg_seq, | 1790 | rep = __nlmsg_put(skb, NETLINK_CB(in_skb).pid, nlh->nlmsg_seq, |
1791 | NLMSG_ERROR, sizeof(struct nlmsgerr), 0); | 1791 | NLMSG_ERROR, payload, 0); |
1792 | errmsg = nlmsg_data(rep); | 1792 | errmsg = nlmsg_data(rep); |
1793 | errmsg->error = err; | 1793 | errmsg->error = err; |
1794 | memcpy(&errmsg->msg, nlh, err ? nlh->nlmsg_len : sizeof(*nlh)); | 1794 | memcpy(&errmsg->msg, nlh, err ? nlh->nlmsg_len : sizeof(*nlh)); |