forked from Minki/linux
pppoe: Unshare skb before anything else
We need to unshare the skb first as otherwise pskb_may_pull may write to a shared skb which could be bad. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
392fdb0e35
commit
bc6cffd177
@ -432,12 +432,12 @@ static int pppoe_disc_rcv(struct sk_buff *skb,
|
||||
if (dev_net(dev) != &init_net)
|
||||
goto abort;
|
||||
|
||||
if (!pskb_may_pull(skb, sizeof(struct pppoe_hdr)))
|
||||
goto abort;
|
||||
|
||||
if (!(skb = skb_share_check(skb, GFP_ATOMIC)))
|
||||
goto out;
|
||||
|
||||
if (!pskb_may_pull(skb, sizeof(struct pppoe_hdr)))
|
||||
goto abort;
|
||||
|
||||
ph = pppoe_hdr(skb);
|
||||
if (ph->code != PADT_CODE)
|
||||
goto abort;
|
||||
|
Loading…
Reference in New Issue
Block a user