diff options
| -rw-r--r-- | net/xfrm/xfrm_replay.c | 4 | 
1 files changed, 3 insertions, 1 deletions
diff --git a/net/xfrm/xfrm_replay.c b/net/xfrm/xfrm_replay.c index 765f6fe951e..35754cc8a9e 100644 --- a/net/xfrm/xfrm_replay.c +++ b/net/xfrm/xfrm_replay.c @@ -242,11 +242,13 @@ static void xfrm_replay_advance_bmp(struct xfrm_state *x, __be32 net_seq)  	u32 diff;  	struct xfrm_replay_state_esn *replay_esn = x->replay_esn;  	u32 seq = ntohl(net_seq); -	u32 pos = (replay_esn->seq - 1) % replay_esn->replay_window; +	u32 pos;  	if (!replay_esn->replay_window)  		return; +	pos = (replay_esn->seq - 1) % replay_esn->replay_window; +  	if (seq > replay_esn->seq) {  		diff = seq - replay_esn->seq;  |