diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2007-09-16 16:19:20 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2007-09-16 16:19:20 -0700 |
commit | 31bac44468257986484703cc09da8a9dcae88a36 (patch) | |
tree | 7782fb9da4c2d4266c6e8ae13cbb9bd50491cd49 /drivers/net/pppoe.c | |
parent | 559cf710b07c5e2cfa3fb8d8f4a1320fd84c53f9 (diff) | |
download | linux-stable-31bac44468257986484703cc09da8a9dcae88a36.tar.gz linux-stable-31bac44468257986484703cc09da8a9dcae88a36.tar.bz2 linux-stable-31bac44468257986484703cc09da8a9dcae88a36.zip |
[PPP] pppoe: Fix skb_unshare_check call position
The skb_unshare_check call needs to be made before pskb_may_pull,
not after.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/pppoe.c')
-rw-r--r-- | drivers/net/pppoe.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/pppoe.c b/drivers/net/pppoe.c index 68631a5721ac..5ac3eff6a2a6 100644 --- a/drivers/net/pppoe.c +++ b/drivers/net/pppoe.c @@ -385,12 +385,12 @@ static int pppoe_rcv(struct sk_buff *skb, struct pppoe_hdr *ph; struct pppox_sock *po; - if (!pskb_may_pull(skb, sizeof(struct pppoe_hdr))) - goto drop; - if (!(skb = skb_share_check(skb, GFP_ATOMIC))) goto out; + if (!pskb_may_pull(skb, sizeof(struct pppoe_hdr))) + goto drop; + ph = pppoe_hdr(skb); po = get_item((unsigned long) ph->sid, eth_hdr(skb)->h_source, dev->ifindex); |