Message ID | 933cec10232417777c5a214e25a31d1f299d1489.1582310461.git.pabeni@redhat.com |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | [net] net: genetlink: return the error code when attribute parsing fails. | expand |
Fri, Feb 21, 2020 at 07:42:13PM CET, pabeni@redhat.com wrote: >Currently if attribute parsing fails and the genl family >does not support parallel operation, the error code returned >by __nlmsg_parse() is discarded by genl_family_rcv_msg_attrs_parse(). > >Be sure to report the error for all genl families. > >Fixes: c10e6cf85e7d ("net: genetlink: push attrbuf allocation and parsing to a separate function") >Fixes: ab5b526da048 ("net: genetlink: always allocate separate attrs for dumpit ops") >Signed-off-by: Paolo Abeni <pabeni@redhat.com> Reviewed-by: Jiri Pirko <jiri@mellanox.com> Thanks!
From: Paolo Abeni <pabeni@redhat.com> Date: Fri, 21 Feb 2020 19:42:13 +0100 > Currently if attribute parsing fails and the genl family > does not support parallel operation, the error code returned > by __nlmsg_parse() is discarded by genl_family_rcv_msg_attrs_parse(). > > Be sure to report the error for all genl families. > > Fixes: c10e6cf85e7d ("net: genetlink: push attrbuf allocation and parsing to a separate function") > Fixes: ab5b526da048 ("net: genetlink: always allocate separate attrs for dumpit ops") > Signed-off-by: Paolo Abeni <pabeni@redhat.com> Applied and queued up for -stable.
diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c index 0522b2b1fd95..9f357aa22b94 100644 --- a/net/netlink/genetlink.c +++ b/net/netlink/genetlink.c @@ -497,8 +497,9 @@ genl_family_rcv_msg_attrs_parse(const struct genl_family *family, err = __nlmsg_parse(nlh, hdrlen, attrbuf, family->maxattr, family->policy, validate, extack); - if (err && parallel) { - kfree(attrbuf); + if (err) { + if (parallel) + kfree(attrbuf); return ERR_PTR(err); } return attrbuf;
Currently if attribute parsing fails and the genl family does not support parallel operation, the error code returned by __nlmsg_parse() is discarded by genl_family_rcv_msg_attrs_parse(). Be sure to report the error for all genl families. Fixes: c10e6cf85e7d ("net: genetlink: push attrbuf allocation and parsing to a separate function") Fixes: ab5b526da048 ("net: genetlink: always allocate separate attrs for dumpit ops") Signed-off-by: Paolo Abeni <pabeni@redhat.com> --- Note: the issue is really introduced by the first commit above, but the fix applies cleanly only after the 2nd one --- net/netlink/genetlink.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)