File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -463,6 +463,16 @@ START_TEST(test_replay_advance_hi_seq)
463463}
464464END_TEST
465465
466+ /* The newly advanced hi_seq must be marked as seen immediately. */
467+ START_TEST (test_replay_advanced_hi_seq_duplicate_rejected )
468+ {
469+ replay_t r ;
470+ esp_replay_init (r ); /* hi_seq=32 */
471+ ck_assert_int_eq (esp_check_replay (& r , 33U ), 0 );
472+ ck_assert_int_ne (esp_check_replay (& r , 33U ), 0 );
473+ }
474+ END_TEST
475+
466476/* A corrupted low hi_seq should not underflow the window floor. */
467477START_TEST (test_replay_low_hi_seq_accepts_seq_one )
468478{
@@ -1169,6 +1179,7 @@ static Suite *esp_suite(void)
11691179 tcase_add_test (tc , test_replay_multiple_in_window );
11701180 tcase_add_test (tc , test_replay_below_window_rejected );
11711181 tcase_add_test (tc , test_replay_advance_hi_seq );
1182+ tcase_add_test (tc , test_replay_advanced_hi_seq_duplicate_rejected );
11721183 tcase_add_test (tc , test_replay_low_hi_seq_accepts_seq_one );
11731184 tcase_add_test (tc , test_replay_jump_resets_bitmap );
11741185 tcase_add_test (tc , test_replay_old_seqs_after_jump );
Original file line number Diff line number Diff line change @@ -1188,7 +1188,7 @@ esp_check_replay(struct replay_t * replay, uint32_t seq)
11881188 * seq_low - - - - - - - seq - - - - - - hi_seq
11891189 * |<----------- ESP_REPLAY_WIN --------------|
11901190 * */
1191- if (seq < replay -> hi_seq ) {
1191+ if (seq <= replay -> hi_seq ) {
11921192 /* seq number within window. */
11931193 bitn = 1U << (replay -> hi_seq - seq );
11941194
@@ -1207,7 +1207,7 @@ esp_check_replay(struct replay_t * replay, uint32_t seq)
12071207 diff = seq - replay -> hi_seq ;
12081208 if (diff < ESP_REPLAY_WIN ) {
12091209 /* within a window width, slide up. */
1210- replay -> bitmap = replay -> bitmap << diff ;
1210+ replay -> bitmap = ( replay -> bitmap << diff ) | 1U ;
12111211 }
12121212 else {
12131213 /* reset window. */
You can’t perform that action at this time.
0 commit comments