| From 91ffc4ba1f0ed7f889b2e64238e1d429382fa31f Mon Sep 17 00:00:00 2001 |
| From: David Ahern <dsahern@kernel.org> |
| Date: Wed, 1 Apr 2020 21:02:25 -0700 |
| Subject: [PATCH] tools/accounting/getdelays.c: fix netlink attribute length |
| |
| commit 4054ab64e29bb05b3dfe758fff3c38a74ba753bb upstream. |
| |
| A recent change to the netlink code: 6e237d099fac ("netlink: Relax attr |
| validation for fixed length types") logs a warning when programs send |
| messages with invalid attributes (e.g., wrong length for a u32). Yafang |
| reported this error message for tools/accounting/getdelays.c. |
| |
| send_cmd() is wrongly adding 1 to the attribute length. As noted in |
| include/uapi/linux/netlink.h nla_len should be NLA_HDRLEN + payload |
| length, so drop the +1. |
| |
| Fixes: 9e06d3f9f6b1 ("per task delay accounting taskstats interface: documentation fix") |
| Reported-by: Yafang Shao <laoar.shao@gmail.com> |
| Signed-off-by: David Ahern <dsahern@kernel.org> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| Tested-by: Yafang Shao <laoar.shao@gmail.com> |
| Cc: Johannes Berg <johannes@sipsolutions.net> |
| Cc: Shailabh Nagar <nagar@watson.ibm.com> |
| Cc: <stable@vger.kernel.org> |
| Link: http://lkml.kernel.org/r/20200327173111.63922-1-dsahern@kernel.org |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/tools/accounting/getdelays.c b/tools/accounting/getdelays.c |
| index 8cb504d30384..5ef1c15e88ad 100644 |
| --- a/tools/accounting/getdelays.c |
| +++ b/tools/accounting/getdelays.c |
| @@ -136,7 +136,7 @@ static int send_cmd(int sd, __u16 nlmsg_type, __u32 nlmsg_pid, |
| msg.g.version = 0x1; |
| na = (struct nlattr *) GENLMSG_DATA(&msg); |
| na->nla_type = nla_type; |
| - na->nla_len = nla_len + 1 + NLA_HDRLEN; |
| + na->nla_len = nla_len + NLA_HDRLEN; |
| memcpy(NLA_DATA(na), nla_data, nla_len); |
| msg.n.nlmsg_len += NLMSG_ALIGN(na->nla_len); |
| |
| -- |
| 2.7.4 |
| |