Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e756682c authored by Steffen Klassert's avatar Steffen Klassert Committed by David S. Miller
Browse files

xfrm: Fix off by one in the replay advance functions



We may write 4 byte too much when we reinitialize the anti replay
window in the replay advance functions. This patch fixes this by
adjusting the last index of the initialization loop.

Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 665c8c8e
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -265,7 +265,7 @@ static void xfrm_replay_advance_bmp(struct xfrm_state *x, __be32 net_seq)
			bitnr = bitnr & 0x1F;
			replay_esn->bmp[nr] |= (1U << bitnr);
		} else {
			nr = replay_esn->replay_window >> 5;
			nr = (replay_esn->replay_window - 1) >> 5;
			for (i = 0; i <= nr; i++)
				replay_esn->bmp[i] = 0;

@@ -471,7 +471,7 @@ static void xfrm_replay_advance_esn(struct xfrm_state *x, __be32 net_seq)
			bitnr = bitnr & 0x1F;
			replay_esn->bmp[nr] |= (1U << bitnr);
		} else {
			nr = replay_esn->replay_window >> 5;
			nr = (replay_esn->replay_window - 1) >> 5;
			for (i = 0; i <= nr; i++)
				replay_esn->bmp[i] = 0;