summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorNickolai Zeldovich <nickolai@csail.mit.edu>2013-01-07 02:27:22 +0100
committerJohn W. Linville <linville@tuxdriver.com>2013-01-07 20:34:44 +0100
commitc4f74d35cac7cbc44877313b69550e2f5aeae77d (patch)
tree54b87003d82ace8947fb143057776807bc14af4d /drivers/net/wireless
parentrtlwifi: Fix typo in debug output of rtl8192c and rtl8723ae (diff)
downloadlinux-c4f74d35cac7cbc44877313b69550e2f5aeae77d.tar.xz
linux-c4f74d35cac7cbc44877313b69550e2f5aeae77d.zip
drivers/net/wireless/mwl8k.c: avoid use-after-free
Do not dereference p->station_id after kfree(cmd) because p points into the cmd data structure. Signed-off-by: Nickolai Zeldovich <nickolai@csail.mit.edu> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r--drivers/net/wireless/mwl8k.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/wireless/mwl8k.c b/drivers/net/wireless/mwl8k.c
index f221b95b90b3..83564d36e801 100644
--- a/drivers/net/wireless/mwl8k.c
+++ b/drivers/net/wireless/mwl8k.c
@@ -4250,9 +4250,11 @@ static int mwl8k_cmd_update_stadb_add(struct ieee80211_hw *hw,
p->amsdu_enabled = 0;
rc = mwl8k_post_cmd(hw, &cmd->header);
+ if (!rc)
+ rc = p->station_id;
kfree(cmd);
- return rc ? rc : p->station_id;
+ return rc;
}
static int mwl8k_cmd_update_stadb_del(struct ieee80211_hw *hw,