mwifiex: do not process mgmt rx on uninitialized interface
authorAvinash Patil <patila@marvell.com>
Wed, 11 Feb 2015 17:42:25 +0000 (23:12 +0530)
committerKalle Valo <kvalo@codeaurora.org>
Fri, 27 Feb 2015 08:08:44 +0000 (10:08 +0200)
This patch fixes a crash which was happening because of RX of
management frames on uninitialzed interface. Now we drop management
frames for interfaces where cfg80211 has not registered any management
subtype reception or interface has no NL80211 iftype set.

Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/mwifiex/util.c

index 308550611f22fe5924c6d51f39e398b5e736ab89..47e215b6d5f5925a9628de18b3b962117f18087b 100644 (file)
@@ -367,6 +367,13 @@ mwifiex_process_mgmt_packet(struct mwifiex_private *priv,
        if (!skb)
                return -1;
 
+       if (!priv->mgmt_frame_mask ||
+           priv->wdev.iftype == NL80211_IFTYPE_UNSPECIFIED) {
+               dev_dbg(priv->adapter->dev,
+                       "do not receive mgmt frames on uninitialized intf");
+               return -1;
+       }
+
        rx_pd = (struct rxpd *)skb->data;
 
        skb_pull(skb, le16_to_cpu(rx_pd->rx_pkt_offset));