ath9k: fix crash with WEP in ad-hoc mode
authorFelix Fietkau <nbd@openwrt.org>
Fri, 2 Jul 2010 12:45:22 +0000 (14:45 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 2 Jul 2010 17:44:38 +0000 (13:44 -0400)
Commit eed8e22f0133e8278b1f8079fcb452f1f9692f9d added support for using
multicast key lookup to support per-vif/sta keys for AP and ad-hoc.
Unfortunately, it also introduced a crash in ad-hoc mode when the sta
pointer is NULL, which happens when setting up an interface with WEP
keys. This patch fixes it by falling back to the assigned key index.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Reported-by: Senthil Balasubramanian <senthilkumar@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/common.c

index 16e2849f644d89682bc2c648e19f8930d113d67b..c86f7d3593ab48a3c1c1248443f0f2f599a327f8 100644 (file)
@@ -319,6 +319,10 @@ int ath9k_cmn_key_config(struct ath_common *common,
                        idx = ath_reserve_key_cache_slot(common, key->alg);
                        break;
                case NL80211_IFTYPE_ADHOC:
+                       if (!sta) {
+                               idx = key->keyidx;
+                               break;
+                       }
                        memcpy(gmac, sta->addr, ETH_ALEN);
                        gmac[0] |= 0x01;
                        mac = gmac;