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 <dsah...@gmail.com>
> Signed-off-by: Alexander Aring <ar...@mojatatu.com>
> ---
>  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.

Reply via email to