From 451b3a2b193e4ac20c7f8c5c74d0afe9a59d9ee1 Mon Sep 17 00:00:00 2001 From: David Woodhouse Date: Mon, 10 Dec 2007 00:17:28 -0500 Subject: [PATCH] --- yaml --- r: 79147 b: refs/heads/master c: 7bf02c2985ced746f8b8956dbe4b0384edb41846 h: refs/heads/master i: 79145: 3e5cb6e7baa0d88c0b85adf998712a318b5bd071 79143: acf8159be6430a9689c2470b5a1f2326b5fef3d6 v: v3 --- [refs] | 2 +- trunk/drivers/net/wireless/libertas/rx.c | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index 452ea88112fc..3b4a4cb33d29 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 180be755aec37483337f64bfca3d4b02f5c8fef4 +refs/heads/master: 7bf02c2985ced746f8b8956dbe4b0384edb41846 diff --git a/trunk/drivers/net/wireless/libertas/rx.c b/trunk/drivers/net/wireless/libertas/rx.c index 90a21996e823..141069fa67f2 100644 --- a/trunk/drivers/net/wireless/libertas/rx.c +++ b/trunk/drivers/net/wireless/libertas/rx.c @@ -337,9 +337,10 @@ static int process_rxed_802_11_packet(struct lbs_private *priv, // lbs_deb_hex(LBS_DEB_RX, "RX Data: Before chop rxpd", skb->data, min(skb->len, 100)); if (skb->len < (ETH_HLEN + 8 + sizeof(struct rxpd))) { - lbs_deb_rx("rx err: frame received wit bad length\n"); + lbs_deb_rx("rx err: frame received with bad length\n"); priv->stats.rx_length_errors++; - ret = 0; + ret = -EINVAL; + kfree(skb); goto done; } @@ -381,10 +382,11 @@ static int process_rxed_802_11_packet(struct lbs_private *priv, /* add space for the new radio header */ if ((skb_headroom(skb) < sizeof(struct rx_radiotap_hdr)) && - pskb_expand_head(skb, sizeof(struct rx_radiotap_hdr), 0, - GFP_ATOMIC)) { - lbs_pr_alert("%s: couldn't pskb_expand_head\n", - __func__); + pskb_expand_head(skb, sizeof(struct rx_radiotap_hdr), 0, GFP_ATOMIC)) { + lbs_pr_alert("%s: couldn't pskb_expand_head\n", __func__); + ret = -ENOMEM; + kfree_skb(skb); + goto done; } pradiotap_hdr = (void *)skb_push(skb, sizeof(struct rx_radiotap_hdr));