فهرست منبع

mwl8k: fix configure_filter() memory leak on error

If there was an error acquiring the firmware lock in
mwl8k_configure_filter(), we would end up leaking the multicast
command packet prepared by mwl8k_prepare_multicast().

Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Lennert Buytenhek 15 سال پیش
والد
کامیت
90852f7aed
1فایلهای تغییر یافته به همراه3 افزوده شده و 1 حذف شده
  1. 3 1
      drivers/net/wireless/mwl8k.c

+ 3 - 1
drivers/net/wireless/mwl8k.c

@@ -3157,8 +3157,10 @@ static void mwl8k_configure_filter(struct ieee80211_hw *hw,
 	/* Clear unsupported feature flags */
 	/* Clear unsupported feature flags */
 	*total_flags &= FIF_ALLMULTI | FIF_BCN_PRBRESP_PROMISC;
 	*total_flags &= FIF_ALLMULTI | FIF_BCN_PRBRESP_PROMISC;
 
 
-	if (mwl8k_fw_lock(hw))
+	if (mwl8k_fw_lock(hw)) {
+		kfree(cmd);
 		return;
 		return;
+	}
 
 
 	if (priv->sniffer_enabled) {
 	if (priv->sniffer_enabled) {
 		mwl8k_enable_sniffer(hw, 0);
 		mwl8k_enable_sniffer(hw, 0);