diff options
author | Wilco Dijkstra <wdijkstr@arm.com> | 2018-09-19 16:50:18 +0100 |
---|---|---|
committer | Wilco Dijkstra <wdijkstr@arm.com> | 2018-09-19 16:50:18 +0100 |
commit | 83a552b0bb9fc2a5e80a0ab3723c0a80ce1db9f2 (patch) | |
tree | 4861e51f5b6524e080ca62aefceb6a1d052fc652 /bits/sched.h | |
parent | d734727837b5135c4c4c540d8c53e5a06aa7556a (diff) | |
download | glibc-83a552b0bb9fc2a5e80a0ab3723c0a80ce1db9f2.tar.gz glibc-83a552b0bb9fc2a5e80a0ab3723c0a80ce1db9f2.tar.xz glibc-83a552b0bb9fc2a5e80a0ab3723c0a80ce1db9f2.zip |
Fix strstr bug with huge needles (bug 23637)
The generic strstr in GLIBC 2.28 fails to match huge needles. The optimized AVAILABLE macro reads ahead a large fixed amount to reduce the overhead of repeatedly checking for the end of the string. However if the needle length is larger than this, two_way_long_needle may confuse this as meaning the end of the string and return NULL. This is fixed by adding the needle length to the amount to read ahead. [BZ #23637] * string/test-strstr.c (pr23637): New function. (test_main): Add tests with longer needles. * string/strcasestr.c (AVAILABLE): Fix readahead distance. * string/strstr.c (AVAILABLE): Likewise.
Diffstat (limited to 'bits/sched.h')
0 files changed, 0 insertions, 0 deletions