diff options
Diffstat (limited to 'net/ipv6/xfrm6_mode_transport.c')
-rw-r--r-- | net/ipv6/xfrm6_mode_transport.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/ipv6/xfrm6_mode_transport.c b/net/ipv6/xfrm6_mode_transport.c index 4e344105b3fd..1d3bbe6e1183 100644 --- a/net/ipv6/xfrm6_mode_transport.c +++ b/net/ipv6/xfrm6_mode_transport.c | |||
@@ -28,6 +28,8 @@ static int xfrm6_transport_output(struct xfrm_state *x, struct sk_buff *skb) | |||
28 | iph = ipv6_hdr(skb); | 28 | iph = ipv6_hdr(skb); |
29 | 29 | ||
30 | hdr_len = x->type->hdr_offset(x, skb, &prevhdr); | 30 | hdr_len = x->type->hdr_offset(x, skb, &prevhdr); |
31 | if (hdr_len < 0) | ||
32 | return hdr_len; | ||
31 | skb_set_mac_header(skb, (prevhdr - x->props.header_len) - skb->data); | 33 | skb_set_mac_header(skb, (prevhdr - x->props.header_len) - skb->data); |
32 | skb_set_network_header(skb, -x->props.header_len); | 34 | skb_set_network_header(skb, -x->props.header_len); |
33 | skb->transport_header = skb->network_header + hdr_len; | 35 | skb->transport_header = skb->network_header + hdr_len; |