On 12/14/17 11:38 AM, Alexander Aring wrote:
> This patch sets a generic netlink error message if the validation of the
> netlink attribute failed. It avoids several different settings of
> netlink messages by handle nla_parse_nested on error case.
>
> Suggested-by: David Ahern <[email protected]>
> Signed-off-by: Alexander Aring <[email protected]>
> ---
> lib/nlattr.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/lib/nlattr.c b/lib/nlattr.c
> index dfa55c873c13..a2a9506b2fb7 100644
> --- a/lib/nlattr.c
> +++ b/lib/nlattr.c
> @@ -253,8 +253,10 @@ int nla_parse(struct nlattr **tb, int maxtype, const
> struct nlattr *head,
> if (policy) {
> err = validate_nla(nla, maxtype, policy);
> if (err < 0) {
> - if (extack)
> + if (extack) {
> + NL_SET_ERR_MSG(extack, "Failed
> to validate netlink attribute");
> extack->bad_attr = nla;
> + }
> goto errout;
> }
> }
>
I have a similar patch:
if (policy) {
err = validate_nla(nla, maxtype, policy);
if (err < 0) {
- if (extack)
- extack->bad_attr = nla;
+ NL_SET_ERR_MSG_ATTR(extack, nla,
+ "Attribute
failed policy validation");
goto errout;
}
}
Wording wise it notes policy validation failed but more importantly it
combines setting the error message and bad_attr into 1 macro.