memmem, strstr, strcasestr: fix bug with long periodic needle
authorEric Blake <eblake@redhat.com>
Tue, 5 Oct 2010 22:39:32 +0000 (16:39 -0600)
committerEric Blake <eblake@redhat.com>
Tue, 5 Oct 2010 22:59:37 +0000 (16:59 -0600)
commitc823199df2cc03b6bd70d0a2fef5999af82792fe
treee333591d48eafa6ce7f00cc046fe4e7363e8f957
parent4a8bddf9e13915227bba4088b80d7f058688ff5f
memmem, strstr, strcasestr: fix bug with long periodic needle

* lib/str-two-way.h (two_way_long_needle): Avoid bug with long
periodic needle having false positive.
* m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE): Detect bug in glibc 2.12
and cygwin 1.7.7.
(gl_FUNC_MEMMEM): Be more pessimistic when cross-compiling.
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE)
(gl_FUNC_STRCASESTR): Likewise.
* m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE, gl_FUNC_STRSTR): Likewise.
* tests/test-memmem.c (main): Expose the bug.
* tests/test-strcasestr.c (main): Likewise.
* tests/test-strstr.c (main): Likewise.
* tests/test-c-strcasestr.c (main): Likewise.
* doc/glibc-functions/memmem.texi (memmem): Document the bug.
* doc/posix-functions/strstr.texi (strstr): Likewise.
* doc/glibc-functions/strcasestr.texi (strcasestr): Likewise.
Reported via http://sourceware.org/bugzilla/show_bug.cgi?id=12092

Signed-off-by: Eric Blake <eblake@redhat.com>
12 files changed:
ChangeLog
doc/glibc-functions/memmem.texi
doc/glibc-functions/strcasestr.texi
doc/posix-functions/strstr.texi
lib/str-two-way.h
m4/memmem.m4
m4/strcasestr.m4
m4/strstr.m4
tests/test-c-strcasestr.c
tests/test-memmem.c
tests/test-strcasestr.c
tests/test-strstr.c