@@ -588,7 +588,7 @@ STRINGLIB(default_find)(const STRINGLIB_CHAR* s, Py_ssize_t n,
588588 continue ;
589589 }
590590 /* miss: check if next character is part of pattern */
591- if (!STRINGLIB_BLOOM (mask , ss [i + 1 ])) {
591+ if (i + 1 <= w && !STRINGLIB_BLOOM (mask , ss [i + 1 ])) {
592592 i = i + m ;
593593 }
594594 else {
@@ -597,7 +597,7 @@ STRINGLIB(default_find)(const STRINGLIB_CHAR* s, Py_ssize_t n,
597597 }
598598 else {
599599 /* skip: check if next character is part of pattern */
600- if (!STRINGLIB_BLOOM (mask , ss [i + 1 ])) {
600+ if (i + 1 <= w && !STRINGLIB_BLOOM (mask , ss [i + 1 ])) {
601601 i = i + m ;
602602 }
603603 }
@@ -661,7 +661,7 @@ STRINGLIB(adaptive_find)(const STRINGLIB_CHAR* s, Py_ssize_t n,
661661 }
662662 }
663663 /* miss: check if next character is part of pattern */
664- if (!STRINGLIB_BLOOM (mask , ss [i + 1 ])) {
664+ if (i + 1 <= w && !STRINGLIB_BLOOM (mask , ss [i + 1 ])) {
665665 i = i + m ;
666666 }
667667 else {
@@ -670,7 +670,7 @@ STRINGLIB(adaptive_find)(const STRINGLIB_CHAR* s, Py_ssize_t n,
670670 }
671671 else {
672672 /* skip: check if next character is part of pattern */
673- if (!STRINGLIB_BLOOM (mask , ss [i + 1 ])) {
673+ if (i + 1 <= w && !STRINGLIB_BLOOM (mask , ss [i + 1 ])) {
674674 i = i + m ;
675675 }
676676 }
0 commit comments