glibc/wcsmbs
Adhemerval Zanella cf11e74b0d wcsmbs: Ensure wcstr worst-case linear execution time (BZ 23865)
It uses the same two-way algorithm used on strstr, strcasestr, and
memmem.  Different than strstr, neither the "shift table" optimization
nor the self-adapting filtering check is used because it would result in
a too-large shift table (and it also simplifies the implementation bit).

Checked on x86_64-linux-gnu and aarch64-linux-gnu.
Reviewed-by: DJ Delorie <dj@redhat.com>
2024-04-11 14:21:32 -03:00
..
bits wcsmbs: Improve fortify with clang 2024-02-27 10:52:59 -03:00
btowc.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
c8rtomb.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
c16rtomb.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
c32rtomb.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
Depend
isoc23_fwscanf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
isoc23_swscanf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
isoc23_vfwscanf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
isoc23_vswscanf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
isoc23_vwscanf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
isoc23_wscanf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
isoc99_fwscanf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
isoc99_swscanf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
isoc99_vfwscanf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
isoc99_vswscanf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
isoc99_vwscanf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
isoc99_wscanf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
Makefile wcsmbs: Add test-wcsstr 2024-04-11 14:21:32 -03:00
mbrlen.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
mbrtoc8.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
mbrtoc16.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
mbrtoc32.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
mbrtowc.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
mbsinit.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
mbsnrtowcs.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
mbsrtowcs_l.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
mbsrtowcs.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
test-c8rtomb.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
test-char-types.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
test-mbrtoc8.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
test-wcpcpy.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
test-wcpncpy.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
test-wcscat.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
test-wcschr.c
test-wcschrnul.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
test-wcscmp.c
test-wcscpy.c
test-wcscspn.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
test-wcsdup.c
test-wcslen.c
test-wcsncat.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
test-wcsncmp.c
test-wcsncpy.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
test-wcsnlen.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
test-wcspbrk.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
test-wcsrchr.c
test-wcsspn.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
test-wcsstr.c wcsmbs: Add test-wcsstr 2024-04-11 14:21:32 -03:00
test-wmemchr.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
test-wmemcmp.c
test-wmemset.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-btowc.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-c16-surrogate.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-c16c32-1.c
tst-c32-state.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-fgetwc-after-eof.c
tst-mbrtowc2.c
tst-mbrtowc.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-mbsrtowcs.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-mbstowcs.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-wchar-h.c
tst-wcpncpy.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-wcrtomb.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-wcslcat2.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-wcslcat.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-wcslcpy2.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-wcslcpy.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-wcsnlen.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-wcstod-nan-locale.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-wcstod-nan-sign.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-wcstod-round.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-wcstof.c
tst-wcstol-binary-c11.c Refer to C23 in place of C2X in glibc 2024-02-01 11:02:01 +00:00
tst-wcstol-binary-c23.c Rename c2x / gnu2x tests to c23 / gnu23 2024-02-01 17:55:57 +00:00
tst-wcstol-binary-gnu11.c Refer to C23 in place of C2X in glibc 2024-02-01 11:02:01 +00:00
tst-wcstol-binary-gnu23.c Rename c2x / gnu2x tests to c23 / gnu23 2024-02-01 17:55:57 +00:00
tst-wcstol-locale.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-wprintf-binary.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-wprintf-intn.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-wscanf-binary-c11.c Refer to C23 in place of C2X in glibc 2024-02-01 11:02:01 +00:00
tst-wscanf-binary-c23.c Rename c2x / gnu2x tests to c23 / gnu23 2024-02-01 17:55:57 +00:00
tst-wscanf-binary-gnu11.c Refer to C23 in place of C2X in glibc 2024-02-01 11:02:01 +00:00
tst-wscanf-binary-gnu89.c Refer to C23 in place of C2X in glibc 2024-02-01 11:02:01 +00:00
tst-wscanf-intn.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tst-wscanf-to_inpunct.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
uchar.h Refer to C23 in place of C2X in glibc 2024-02-01 11:02:01 +00:00
Versions
wchar.h Refer to C23 in place of C2X in glibc 2024-02-01 11:02:01 +00:00
wcpcpy.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcpncpy.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcrtomb.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcs-two-way.h wcsmbs: Ensure wcstr worst-case linear execution time (BZ 23865) 2024-04-11 14:21:32 -03:00
wcsatcliff.c
wcscasecmp_l.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcscasecmp.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcscat.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcschr.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcschrnul.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcscmp.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcscoll_l.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcscoll.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcscpy.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcscspn.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsdup.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcslcat.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcslcpy.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcslen.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsmbs-tst1.c
wcsmbsload.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsmbsload.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsncase_l.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsncase.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsncat.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsncmp.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsncpy.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsnlen.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsnrtombs.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcspbrk.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsrchr.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsrtombs.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsspn.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsstr.c wcsmbs: Ensure wcstr worst-case linear execution time (BZ 23865) 2024-04-11 14:21:32 -03:00
wcstod_l.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcstod_nan.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcstod.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcstof_l.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcstof_nan.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcstof.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcstok.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcstol_l.c Refer to C23 in place of C2X in glibc 2024-02-01 11:02:01 +00:00
wcstol.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcstold_l.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcstold_nan.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcstold.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcstoll_l.c Refer to C23 in place of C2X in glibc 2024-02-01 11:02:01 +00:00
wcstoll.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcstoul_l.c Refer to C23 in place of C2X in glibc 2024-02-01 11:02:01 +00:00
wcstoul.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcstoull_l.c Refer to C23 in place of C2X in glibc 2024-02-01 11:02:01 +00:00
wcstoull.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcswidth.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsxfrm_l.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsxfrm.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wctob.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcwidth.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcwidth.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wmemchr.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wmemcmp.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wmemcpy.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wmemmove.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wmempcpy.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wmemset.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00