Re: [PATCH] nl80211: check return of nla_parse_nested

From: Johannes Berg
Date: Fri Feb 18 2022 - 11:51:20 EST


On Fri, 2022-02-18 at 08:30 -0800, trix@xxxxxxxxxx wrote:
> From: Tom Rix <trix@xxxxxxxxxx>
>
> Clang static analysis reports this representative problem
> nl80211.c:15426:6: warning: Branch condition evaluates
> to a garbage value
> if (!tb[NL80211_SAR_ATTR_TYPE] ||
> ^~~~~~~~~~~~~~~~~~~~~~~~~~
>
> tb is set when nla_parse_nested() is successful.
> So check.

Well, it's a bit annoying that we cannot express/check this, but we
already validated that it's going to succeed, through the nested policy:

static const struct nla_policy nl80211_policy[NUM_NL80211_ATTR] = {
[...]
[NL80211_ATTR_SAR_SPEC] = NLA_POLICY_NESTED(sar_policy),


Thus, it cannot actually fail. I suppose in this case checking for
errors doesn't make the code that much worse, but there's isn't really
much point. Maybe a comment would be useful?

johannes