iwmc3200wifi: fix NULL pointer dereference in pmkid update
authorZhu Yi <yi.zhu@intel.com>
Tue, 1 Dec 2009 03:48:50 +0000 (11:48 +0800)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 4 Dec 2009 19:16:24 +0000 (14:16 -0500)
When handling IWM_CMD_PMKID_FLUSH command, the bssid and
pmkid in pmksa are all NULL. Check it before memcpy.

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwmc3200wifi/commands.c

index bd0630755b32c0e7db796c8aab7ed0c1224289af..89b33fa8d4efd3bd097690dbdd5c18657c327235 100644 (file)
@@ -970,8 +970,10 @@ int iwm_send_pmkid_update(struct iwm_priv *iwm,
        memset(&update, 0, sizeof(struct iwm_umac_pmkid_update));
 
        update.command = cpu_to_le32(command);
-       memcpy(&update.bssid, pmksa->bssid, ETH_ALEN);
-       memcpy(&update.pmkid, pmksa->pmkid, WLAN_PMKID_LEN);
+       if (pmksa->bssid)
+               memcpy(&update.bssid, pmksa->bssid, ETH_ALEN);
+       if (pmksa->pmkid)
+               memcpy(&update.pmkid, pmksa->pmkid, WLAN_PMKID_LEN);
 
        ret = iwm_send_wifi_if_cmd(iwm, &update,
                                   sizeof(struct iwm_umac_pmkid_update), 0);