build/patch/kernel/sunxi-next/fix-net-esp4.patch
2017-06-11 16:25:10 +03:00

27 lines
787 B
Diff

diff --git a/net/ipv4/esp4.c b/net/ipv4/esp4.c
index b1e24446..0693ab61 100644
--- a/net/ipv4/esp4.c
+++ b/net/ipv4/esp4.c
@@ -222,6 +222,7 @@ static int esp_output(struct xfrm_state *x, struct sk_buff *skb)
int assoclen;
int extralen;
int tailen;
+ int esph_offset;
__be64 seqno;
__u8 proto = *skb_mac_header(skb);
@@ -392,12 +393,13 @@ static int esp_output(struct xfrm_state *x, struct sk_buff *skb)
}
cow:
+ esph_offset = (unsigned char *)esph - skb_transport_header(skb);
err = skb_cow_data(skb, tailen, &trailer);
if (err < 0)
goto error;
nfrags = err;
tail = skb_tail_pointer(trailer);
- esph = ip_esp_hdr(skb);
+ esph = (struct ip_esp_hdr *)(skb_transport_header(skb) + esph_offset);
skip_cow:
esp_output_fill_trailer(tail, tfclen, plen, proto);