Skip to content

Commit

Permalink
libertas: fix error cases in lbs_process_rxed_802_11_packet()
Browse files Browse the repository at this point in the history
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
David Woodhouse authored and David S. Miller committed Jan 28, 2008
1 parent 180be75 commit 7bf02c2
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions drivers/net/wireless/libertas/rx.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down Expand Up @@ -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));
Expand Down

0 comments on commit 7bf02c2

Please sign in to comment.