[PPP] generic: Call skb_cow_head before scribbling over skb

It's rude to write over data that other people are still using. So call
skb_cow_head before PPP proceeds to modify the skb data.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by Herbert Xu and committed by David S. Miller 7b797d5b d9cc2048

+2 -10
+2 -10
drivers/net/ppp_generic.c
··· 899 899 900 900 /* Put the 2-byte PPP protocol number on the front, 901 901 making sure there is room for the address and control fields. */ 902 - if (skb_headroom(skb) < PPP_HDRLEN) { 903 - struct sk_buff *ns; 902 + if (skb_cow_head(skb, PPP_HDRLEN)) 903 + goto outf; 904 904 905 - ns = alloc_skb(skb->len + dev->hard_header_len, GFP_ATOMIC); 906 - if (ns == 0) 907 - goto outf; 908 - skb_reserve(ns, dev->hard_header_len); 909 - skb_copy_bits(skb, 0, skb_put(ns, skb->len), skb->len); 910 - kfree_skb(skb); 911 - skb = ns; 912 - } 913 905 pp = skb_push(skb, 2); 914 906 proto = npindex_to_proto[npi]; 915 907 pp[0] = proto >> 8;