[PATCH 3/3] Fix memory leakage

Eugene Krasnikov k.eugene.e at gmail.com
Mon Jun 10 09:27:28 EDT 2013


Whenever skb is requested from mac80211 do not forget
to free it.

Signed-off-by: Eugene Krasnikov <k.eugene.e at gmail.com>
---
 main.c | 4 ++++
 smd.c  | 2 --
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/main.c b/main.c
index 6d28277..8c739b0 100644
--- a/main.c
+++ b/main.c
@@ -362,6 +362,8 @@ static void wcn36xx_bss_info_changed(struct ieee80211_hw *hw,
 		wcn36xx_dbg(WCN36XX_DBG_MAC, "mac bss changed ap probe resp");
 		skb = ieee80211_proberesp_get(hw, vif);
 		wcn36xx_smd_update_proberesp_tmpl(wcn, skb);
+		dev_kfree_skb(skb);
+		skb = NULL;
 	}
 
 	if (changed & BSS_CHANGED_BEACON_ENABLED) {
@@ -377,6 +379,8 @@ static void wcn36xx_bss_info_changed(struct ieee80211_hw *hw,
 					       wcn->addresses[0].addr, false,
 					       wcn->beacon_interval);
 			wcn36xx_smd_send_beacon(wcn, skb, tim_off, 0);
+			dev_kfree_skb(skb);
+			skb = NULL;
 
 			if (vif->type == NL80211_IFTYPE_ADHOC ||
 			    vif->type == NL80211_IFTYPE_MESH_POINT)
diff --git a/smd.c b/smd.c
index a730ee4..c83481e 100644
--- a/smd.c
+++ b/smd.c
@@ -936,8 +936,6 @@ int wcn36xx_smd_update_proberesp_tmpl(struct wcn36xx *wcn, struct sk_buff *skb)
 		    "hal update probe rsp len %d bssid %pM",
 		    msg.probe_resp_template_len, msg.bssid);
 
-	dev_kfree_skb(skb);
-
 	return wcn36xx_smd_send_and_wait(wcn, msg.header.len);
 };
 
-- 
1.7.11.3




More information about the wcn36xx mailing list