From 8eb8a114c4b1ece5b71d1d56a400531627c63129 Mon Sep 17 00:00:00 2001 From: Arnaldo Carvalho de Melo Date: Sat, 10 Mar 2007 19:15:25 -0300 Subject: [PATCH 09/18] [SK_BUFF]: Some more skb_put cases converted to skb_reset_network_header Signed-off-by: Arnaldo Carvalho de Melo --- net/ipv4/ip_output.c | 3 ++- net/ipv4/ip_sockglue.c | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index d329718..dde51fb 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c @@ -1126,7 +1126,8 @@ ssize_t ip_append_page(struct sock *sk, struct page *page, * Find where to start putting bytes. */ data = skb_put(skb, fragheaderlen + fraggap); - skb->nh.iph = iph = (struct iphdr *)data; + skb_reset_network_header(skb); + iph = skb->nh.iph; data += fragheaderlen; skb->h.raw = data; diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c index c5e4164..f8ab654 100644 --- a/net/ipv4/ip_sockglue.c +++ b/net/ipv4/ip_sockglue.c @@ -296,8 +296,9 @@ void ip_local_error(struct sock *sk, int err, __be32 daddr, __be16 port, u32 inf if (!skb) return; - iph = (struct iphdr*)skb_put(skb, sizeof(struct iphdr)); - skb->nh.iph = iph; + skb_put(skb, sizeof(struct iphdr)); + skb_reset_network_header(skb); + iph = skb->nh.iph; iph->daddr = daddr; serr = SKB_EXT_ERR(skb); -- 1.5.0.2