diff options
Diffstat (limited to 'net/xfrm/xfrm_replay.c')
| -rw-r--r-- | net/xfrm/xfrm_replay.c | 13 | 
1 files changed, 6 insertions, 7 deletions
diff --git a/net/xfrm/xfrm_replay.c b/net/xfrm/xfrm_replay.c index 3efb07d3eb2..765f6fe951e 100644 --- a/net/xfrm/xfrm_replay.c +++ b/net/xfrm/xfrm_replay.c @@ -521,13 +521,12 @@ int xfrm_init_replay(struct xfrm_state *x)  		    replay_esn->bmp_len * sizeof(__u32) * 8)  			return -EINVAL; -	if ((x->props.flags & XFRM_STATE_ESN) && replay_esn->replay_window == 0) -		return -EINVAL; - -	if ((x->props.flags & XFRM_STATE_ESN) && x->replay_esn) -		x->repl = &xfrm_replay_esn; -	else -		x->repl = &xfrm_replay_bmp; +		if (x->props.flags & XFRM_STATE_ESN) { +			if (replay_esn->replay_window == 0) +				return -EINVAL; +			x->repl = &xfrm_replay_esn; +		} else +			x->repl = &xfrm_replay_bmp;  	} else  		x->repl = &xfrm_replay_legacy;  |