diff options
author | Valdis Kletnieks <Valdis.Kletnieks@vt.edu> | 2014-09-08 18:09:48 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-09-08 15:22:52 -0700 |
commit | 79d99c305fd4edb9ee11ff57f43dc961ad684ab6 (patch) | |
tree | fa8b8e54de0941d6ce1ce5a9a6123fb956d75902 /drivers/staging/rtl8192u | |
parent | 9f87b447204cb1cbc6c838f97ff2e365689c15f4 (diff) |
staging/rtl8192u - check for skb alloc failure
It's possible for dev_alloc_skb() to fail. Propagate the error to the caller,
so it can clean up and drop the packet. The sender should end up retransmitting
the packet, hopefully at a time we're prepared to allocate skb's again.
Reported-By: Nicholas Krause <xerofoify@gmail.com>
Signed-Off-By: Valdis Kletnieks <valdis.kletnieks@vt.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/rtl8192u')
-rw-r--r-- | drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c index 40da37fdbcdc..73de9e9669f6 100644 --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c @@ -847,6 +847,8 @@ static u8 parse_subframe(struct sk_buff *skb, #else /* Allocate new skb for releasing to upper layer */ sub_skb = dev_alloc_skb(nSubframe_Length + 12); + if (!sub_skb) + return 0; skb_reserve(sub_skb, 12); data_ptr = (u8 *)skb_put(sub_skb, nSubframe_Length); memcpy(data_ptr, skb->data, nSubframe_Length); |