Message ID | 20220328032431.22538-1-xiam0nd.tong@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 6da69b1da130e7d96766042750cd9f902e890eba |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: dsa: bcm_sf2_cfp: fix an incorrect NULL check on list iterator | expand |
Hello: This patch was applied to netdev/net.git (master) by Jakub Kicinski <kuba@kernel.org>: On Mon, 28 Mar 2022 11:24:31 +0800 you wrote: > The bug is here: > return rule; > > The list iterator value 'rule' will *always* be set and non-NULL > by list_for_each_entry(), so it is incorrect to assume that the > iterator value will be NULL if the list is empty or no element > is found. > > [...] Here is the summary with links: - net: dsa: bcm_sf2_cfp: fix an incorrect NULL check on list iterator https://git.kernel.org/netdev/net/c/6da69b1da130 You are awesome, thank you!
diff --git a/drivers/net/dsa/bcm_sf2_cfp.c b/drivers/net/dsa/bcm_sf2_cfp.c index a7e2fcf2df2c..edbe5e7f1cb6 100644 --- a/drivers/net/dsa/bcm_sf2_cfp.c +++ b/drivers/net/dsa/bcm_sf2_cfp.c @@ -567,14 +567,14 @@ static void bcm_sf2_cfp_slice_ipv6(struct bcm_sf2_priv *priv, static struct cfp_rule *bcm_sf2_cfp_rule_find(struct bcm_sf2_priv *priv, int port, u32 location) { - struct cfp_rule *rule = NULL; + struct cfp_rule *rule; list_for_each_entry(rule, &priv->cfp.rules_list, next) { if (rule->port == port && rule->fs.location == location) - break; + return rule; } - return rule; + return NULL; } static int bcm_sf2_cfp_rule_cmp(struct bcm_sf2_priv *priv, int port,