staging: wilc1000: adds a check routine when performed del_key()
authorLeo Kim <leo.kim@atmel.com>
Fri, 1 Apr 2016 08:44:19 +0000 (17:44 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 29 Apr 2016 04:58:42 +0000 (21:58 -0700)
This patch is adds a check routine when performed del_key().
We was find this situation while test the 'rmmod sdio'.
That is received inform a .del_key cmd from cfg80211.
If is not exist wep keys, must be ignore a wilc_remove_wep_key() function.
Thus, adds a check routine that key length of wep.

Signed-off-by: Leo Kim <leo.kim@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c

index 1ac835becc9d6957479fa744811d5003ba761be6..85031f75d7ee6ea778c853bbbb95601f33a3afe5 100644 (file)
@@ -1122,9 +1122,12 @@ static int del_key(struct wiphy *wiphy, struct net_device *netdev,
        }
 
        if (key_index >= 0 && key_index <= 3) {
-               memset(priv->WILC_WFI_wep_key[key_index], 0, priv->WILC_WFI_wep_key_len[key_index]);
-               priv->WILC_WFI_wep_key_len[key_index] = 0;
-               wilc_remove_wep_key(vif, key_index);
+               if (priv->WILC_WFI_wep_key_len[key_index]) {
+                       memset(priv->WILC_WFI_wep_key[key_index], 0,
+                              priv->WILC_WFI_wep_key_len[key_index]);
+                       priv->WILC_WFI_wep_key_len[key_index] = 0;
+                       wilc_remove_wep_key(vif, key_index);
+               }
        } else {
                wilc_remove_key(priv->hif_drv, mac_addr);
        }