Setting it to skb->h.raw, which is valid, in the (to become) old pointer based
world order and in the new world of offset based layer headers.

Signed-off-by: Arnaldo Carvalho de Melo <[EMAIL PROTECTED]>
---
net/ipv4/xfrm4_mode_transport.c |    6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
From 1be06f79a01bf57737caf1b7280e3b07335b0f7e Mon Sep 17 00:00:00 2001
From: Arnaldo Carvalho de Melo <[EMAIL PROTECTED]>
Date: Sat, 10 Mar 2007 19:59:16 -0300
Subject: [PATCH 13/18] [SK_BUFF] xfrm4: use skb_reset_network_header

Setting it to skb->h.raw, which is valid, in the (to become) old pointer based
world order and in the new world of offset based layer headers.

Signed-off-by: Arnaldo Carvalho de Melo <[EMAIL PROTECTED]>
---
 net/ipv4/xfrm4_mode_transport.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/net/ipv4/xfrm4_mode_transport.c b/net/ipv4/xfrm4_mode_transport.c
index 290c0f2..a820dde 100644
--- a/net/ipv4/xfrm4_mode_transport.c
+++ b/net/ipv4/xfrm4_mode_transport.c
@@ -50,8 +50,10 @@ static int xfrm4_transport_input(struct xfrm_state *x, struct sk_buff *skb)
 {
 	int ihl = skb->data - skb->h.raw;
 
-	if (skb->h.raw != skb->nh.raw)
-		skb->nh.raw = memmove(skb->h.raw, skb->nh.raw, ihl);
+	if (skb->h.raw != skb->nh.raw) {
+		memmove(skb->h.raw, skb->nh.raw, ihl);
+		skb->nh.raw = skb->h.raw;
+	}
 	skb->nh.iph->tot_len = htons(skb->len + ihl);
 	skb->h.raw = skb->data;
 	return 0;
-- 
1.5.0.2

Reply via email to