diff options
Diffstat (limited to 'net/ipv6/ah6.c')
-rw-r--r-- | net/ipv6/ah6.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/net/ipv6/ah6.c b/net/ipv6/ah6.c index a8221d1da0ff..67cd06613a25 100644 --- a/net/ipv6/ah6.c +++ b/net/ipv6/ah6.c | |||
@@ -477,8 +477,15 @@ static int ah6_init_state(struct xfrm_state *x) | |||
477 | 477 | ||
478 | x->props.header_len = XFRM_ALIGN8(sizeof(struct ip_auth_hdr) + | 478 | x->props.header_len = XFRM_ALIGN8(sizeof(struct ip_auth_hdr) + |
479 | ahp->icv_trunc_len); | 479 | ahp->icv_trunc_len); |
480 | if (x->props.mode == XFRM_MODE_TUNNEL) | 480 | switch (x->props.mode) { |
481 | case XFRM_MODE_BEET: | ||
482 | case XFRM_MODE_TRANSPORT: | ||
483 | break; | ||
484 | case XFRM_MODE_TUNNEL: | ||
481 | x->props.header_len += sizeof(struct ipv6hdr); | 485 | x->props.header_len += sizeof(struct ipv6hdr); |
486 | default: | ||
487 | goto error; | ||
488 | } | ||
482 | x->data = ahp; | 489 | x->data = ahp; |
483 | 490 | ||
484 | return 0; | 491 | return 0; |