Commit 39f3b41a authored by Paolo Abeni's avatar Paolo Abeni Committed by David S. Miller

net: genetlink: return the error code when attribute parsing fails.

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: c10e6cf8 ("net: genetlink: push attrbuf allocation and parsing to a separate function")
Fixes: ab5b526d ("net: genetlink: always allocate separate attrs for dumpit ops")
Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
Reviewed-by: default avatarJiri Pirko <jiri@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3e72dfdf
...@@ -497,8 +497,9 @@ genl_family_rcv_msg_attrs_parse(const struct genl_family *family, ...@@ -497,8 +497,9 @@ genl_family_rcv_msg_attrs_parse(const struct genl_family *family,
err = __nlmsg_parse(nlh, hdrlen, attrbuf, family->maxattr, err = __nlmsg_parse(nlh, hdrlen, attrbuf, family->maxattr,
family->policy, validate, extack); family->policy, validate, extack);
if (err && parallel) { if (err) {
kfree(attrbuf); if (parallel)
kfree(attrbuf);
return ERR_PTR(err); return ERR_PTR(err);
} }
return attrbuf; return attrbuf;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment