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. Fixes: 6bdb68cef7bf ("nl80211: add common API to configure SAR power limitations") Signed-off-by: Tom Rix <trix@xxxxxxxxxx> --- net/wireless/nl80211.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index 7543c73a3f1d..c1532c8eb657 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -15419,9 +15419,11 @@ static int nl80211_set_sar_specs(struct sk_buff *skb, struct genl_info *info) if (!info->attrs[NL80211_ATTR_SAR_SPEC]) return -EINVAL; - nla_parse_nested(tb, NL80211_SAR_ATTR_MAX, - info->attrs[NL80211_ATTR_SAR_SPEC], - NULL, NULL); + err = nla_parse_nested(tb, NL80211_SAR_ATTR_MAX, + info->attrs[NL80211_ATTR_SAR_SPEC], + NULL, NULL); + if (err) + return err; if (!tb[NL80211_SAR_ATTR_TYPE] || !tb[NL80211_SAR_ATTR_SPECS]) return -EINVAL; @@ -15444,8 +15446,10 @@ static int nl80211_set_sar_specs(struct sk_buff *skb, struct genl_info *info) sar_spec->type = type; specs = 0; nla_for_each_nested(spec_list, tb[NL80211_SAR_ATTR_SPECS], rem) { - nla_parse_nested(spec, NL80211_SAR_ATTR_SPECS_MAX, - spec_list, NULL, NULL); + err = nla_parse_nested(spec, NL80211_SAR_ATTR_SPECS_MAX, + spec_list, NULL, NULL); + if (err) + goto error; switch (type) { case NL80211_SAR_TYPE_POWER: -- 2.26.3