summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2011-11-08 13:04:41 +0100
committerJohn W. Linville <linville@tuxdriver.com>2011-11-09 14:35:55 -0500
commit5b2bbf75a24d6b06afff6de0eb4819413fd81971 (patch)
tree2c48b2fa617f7bc11e9a47c6f40f1a30d1fa83dd /net
parentf8d1ccf15568268c76f913b45ecdd33134387f1a (diff)
downloadlinux-3.10-5b2bbf75a24d6b06afff6de0eb4819413fd81971.tar.gz
linux-3.10-5b2bbf75a24d6b06afff6de0eb4819413fd81971.tar.bz2
linux-3.10-5b2bbf75a24d6b06afff6de0eb4819413fd81971.zip
mac80211: fix bug in ieee80211_build_probe_req
ieee80211_probereq_get() can return NULL in which case we should clean up & return NULL in ieee80211_build_probe_req() as well. Cc: stable@vger.kernel.org Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net')
-rw-r--r--net/mac80211/util.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
index 7439d26bf5f..0c9490722aa 100644
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -880,6 +880,8 @@ struct sk_buff *ieee80211_build_probe_req(struct ieee80211_sub_if_data *sdata,
skb = ieee80211_probereq_get(&local->hw, &sdata->vif,
ssid, ssid_len,
buf, buf_len);
+ if (!skb)
+ goto out;
if (dst) {
mgmt = (struct ieee80211_mgmt *) skb->data;
@@ -888,6 +890,8 @@ struct sk_buff *ieee80211_build_probe_req(struct ieee80211_sub_if_data *sdata,
}
IEEE80211_SKB_CB(skb)->flags |= IEEE80211_TX_INTFL_DONT_ENCRYPT;
+
+ out:
kfree(buf);
return skb;