瀏覽代碼

mwifiex: do not process mgmt rx on uninitialized interface

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>
Avinash Patil 10 年之前
父節點
當前提交
7521ce6eb2
共有 1 個文件被更改,包括 7 次插入0 次删除
  1. 7 0
      drivers/net/wireless/mwifiex/util.c

+ 7 - 0
drivers/net/wireless/mwifiex/util.c

@@ -367,6 +367,13 @@ mwifiex_process_mgmt_packet(struct mwifiex_private *priv,
 	if (!skb)
 	if (!skb)
 		return -1;
 		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;
 	rx_pd = (struct rxpd *)skb->data;
 
 
 	skb_pull(skb, le16_to_cpu(rx_pd->rx_pkt_offset));
 	skb_pull(skb, le16_to_cpu(rx_pd->rx_pkt_offset));