summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuis Carlos Cobo <luisca@cozybit.com>2008-05-05 12:29:42 -0700
committerJohn W. Linville <linville@tuxdriver.com>2008-05-12 21:22:18 -0400
commit69687a0b9934942e61bf8148c242adea87183a5b (patch)
treea235fcc6f21a97c95ff2c58d3f13fa129370b84d
parentef269254772a0d2253c85cafe160e3f6528eb292 (diff)
downloadlinux-69687a0b9934942e61bf8148c242adea87183a5b.tar.gz
linux-69687a0b9934942e61bf8148c242adea87183a5b.tar.bz2
linux-69687a0b9934942e61bf8148c242adea87183a5b.zip
mac80211: fix access to null skb
Without this patch, if xmit_skb is null but net_ratelimit() returns 0 we would go to the else branch and access the null xmit_skb. Pointed out by Johannes Berg. Signed-off-by: Luis Carlos Cobo <luisca@cozybit.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--net/mac80211/rx.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 02f436a86061..9c57b3af0244 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -1305,11 +1305,11 @@ ieee80211_deliver_skb(struct ieee80211_rx_data *rx)
if (is_multicast_ether_addr(skb->data)) {
if (*mesh_ttl > 0) {
xmit_skb = skb_copy(skb, GFP_ATOMIC);
- if (!xmit_skb && net_ratelimit())
+ if (xmit_skb)
+ xmit_skb->pkt_type = PACKET_OTHERHOST;
+ else if (net_ratelimit())
printk(KERN_DEBUG "%s: failed to clone "
"multicast frame\n", dev->name);
- else
- xmit_skb->pkt_type = PACKET_OTHERHOST;
} else
IEEE80211_IFSTA_MESH_CTR_INC(&sdata->u.sta,
dropped_frames_ttl);