Mercurial > hg > octave-shane > gnulib-hg
view doc/posix-functions/strstr.texi @ 13772:1d8a613275c6
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>
author | Eric Blake <eblake@redhat.com> |
---|---|
date | Tue, 05 Oct 2010 16:39:32 -0600 |
parents | bb0ceefd22dc |
children | c65fd41437cf |
line wrap: on
line source
@node strstr @section @code{strstr} @findex strstr POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/strstr.html} Gnulib module: strstr or strstr-simple Portability problems fixed by either Gnulib module @code{strstr-simple} or @code{strstr}: @itemize @item This function can trigger memchr bugs on some platforms: glibc 2.10. @item This function can trigger false positives for long periodic needles on some platforms: glibc 2.12, Cygwin 1.7.7. @end itemize Portability problems fixed by Gnulib @code{strstr}: @itemize @item This function has quadratic instead of linear worst-case complexity on some platforms: glibc 2.8, MacOS X 10.3, FreeBSD 6.2, NetBSD 3.0, OpenBSD 4.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw. @end itemize Portability problems not fixed by Gnulib: @itemize @item This function cannot work correctly on character strings in most multibyte locales. Gnulib provides an alternative function @code{mbsstr} that works on character strings in all locales. @end itemize