summaryrefslogtreecommitdiffstats
path: root/net/ipv4/raw.c
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2007-03-10 18:40:59 -0300
committerDavid S. Miller <davem@sunset.davemloft.net>2007-04-25 22:24:48 -0700
commit7e28ecc282574a7d72ace365fc9bc86e27ba880f (patch)
tree6321d16c591694d6405b723f7bea80855b8040ce /net/ipv4/raw.c
parente2d1bca7e6134671bcb19810d004a252aa6a644d (diff)
downloadlinux-7e28ecc282574a7d72ace365fc9bc86e27ba880f.tar.gz
linux-7e28ecc282574a7d72ace365fc9bc86e27ba880f.tar.bz2
linux-7e28ecc282574a7d72ace365fc9bc86e27ba880f.zip
[SK_BUFF]: Use skb_reset_network_header where the skb_pull return was being used
But only in the cases where its a newly allocated skb, i.e. one where skb->tail is equal to skb->data, or just after skb_reserve, where this requirement is maintained. Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/raw.c')
-rw-r--r--net/ipv4/raw.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c
index 87e9c1618100..67e5e3c035c1 100644
--- a/net/ipv4/raw.c
+++ b/net/ipv4/raw.c
@@ -291,7 +291,9 @@ static int raw_send_hdrinc(struct sock *sk, void *from, size_t length,
skb->priority = sk->sk_priority;
skb->dst = dst_clone(&rt->u.dst);
- skb->nh.iph = iph = (struct iphdr *)skb_put(skb, length);
+ skb_reset_network_header(skb);
+ iph = skb->nh.iph;
+ skb_put(skb, length);
skb->ip_summed = CHECKSUM_NONE;