Re: [PATCH net-next v3] genetlink: do not parse attributes for families with zero maxattr

From: Jiri Pirko
Date: Fri Oct 11 2019 - 05:16:59 EST


Fri, Oct 11, 2019 at 09:40:09AM CEST, mkubecek@xxxxxxx wrote:
>Commit c10e6cf85e7d ("net: genetlink: push attrbuf allocation and parsing
>to a separate function") moved attribute buffer allocation and attribute
>parsing from genl_family_rcv_msg_doit() into a separate function
>genl_family_rcv_msg_attrs_parse() which, unlike the previous code, calls
>__nlmsg_parse() even if family->maxattr is 0 (i.e. the family does its own
>parsing). The parser error is ignored and does not propagate out of
>genl_family_rcv_msg_attrs_parse() but an error message ("Unknown attribute
>type") is set in extack and if further processing generates no error or
>warning, it stays there and is interpreted as a warning by userspace.
>
>Dumpit requests are not affected as genl_family_rcv_msg_dumpit() bypasses
>the call of genl_family_rcv_msg_attrs_parse() if family->maxattr is zero.
>Move this logic inside genl_family_rcv_msg_attrs_parse() so that we don't
>have to handle it in each caller.
>
>v3: put the check inside genl_family_rcv_msg_attrs_parse()
>v2: adjust also argument of genl_family_rcv_msg_attrs_free()
>
>Fixes: c10e6cf85e7d ("net: genetlink: push attrbuf allocation and parsing to a separate function")
>Signed-off-by: Michal Kubecek <mkubecek@xxxxxxx>

Acked-by: Jiri Pirko <jiri@xxxxxxxxxxxx>

Thanks!