Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bc6cffd1 authored by Herbert Xu's avatar Herbert Xu Committed by David S. Miller
Browse files

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: default avatarHerbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 392fdb0e
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -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;