mirror of
https://github.com/Fishwaldo/build.git
synced 2025-03-22 23:01:56 +00:00
27 lines
787 B
Diff
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);
|