mac80211_hwsim: fix check for custom world regdom array size
authorJohannes Berg <johannes.berg@intel.com>
Mon, 22 Dec 2014 11:51:25 +0000 (12:51 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 22 Dec 2014 11:51:25 +0000 (12:51 +0100)
David Binderman reports that the conditions in the first loop
are the wrong way around - checking the array contents before
the size.

Instead of leaving the empty loop there and reordering the two
checks unify it into a single loop that skips over non-matches
and exits after the first match.

Reported-by: David Binderman <dcb314@hotmail.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/mac80211_hwsim.c

index a71b9d5e353d6d114c10d712b72f553f6edfe8ec..057a99e01637c8a3305d52f8cbd4b0c0830c10dd 100644 (file)
@@ -2150,14 +2150,14 @@ static int append_radio_msg(struct sk_buff *skb, int id,
        if (param->regd) {
                int i;
 
-               for (i = 0; hwsim_world_regdom_custom[i] != param->regd &&
-                    i < ARRAY_SIZE(hwsim_world_regdom_custom); i++)
-                       ;
+               for (i = 0; i < ARRAY_SIZE(hwsim_world_regdom_custom); i++) {
+                       if (hwsim_world_regdom_custom[i] != param->regd)
+                               continue;
 
-               if (i < ARRAY_SIZE(hwsim_world_regdom_custom)) {
                        ret = nla_put_u32(skb, HWSIM_ATTR_REG_CUSTOM_REG, i);
                        if (ret < 0)
                                return ret;
+                       break;
                }
        }