aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Kuvyrkov <maxim@codesourcery.com>2012-10-15 17:22:41 -0700
committerMaxim Kuvyrkov <maxim@codesourcery.com>2012-10-15 17:22:41 -0700
commite9f372520618161d7d73e028ca23818e83b88bbc (patch)
treefe653203bdee68e734135ade5c34b2f3aa515611
parentb8d7c0968c095d25fded0e2dfea1a16b1fd42911 (diff)
downloadglibc-e9f372520618161d7d73e028ca23818e83b88bbc.zip
glibc-e9f372520618161d7d73e028ca23818e83b88bbc.tar.gz
glibc-e9f372520618161d7d73e028ca23818e83b88bbc.tar.bz2
Fix BZ #14716: memmem crash
-rw-r--r--ChangeLog6
-rw-r--r--NEWS2
-rw-r--r--string/str-two-way.h4
3 files changed, 9 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 9343ce2..0c05941 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2012-10-16 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * NEWS: Mention BZ #14716.
+ * string/str-two-way.h (two_way_short_needle): Fix thinko introduced
+ when removing AVAILABLE1_USES_J macro.
+
2012-10-12 H.J. Lu <hongjiu.lu@intel.com>
* sysdeps/x86/bits/byteswap.h: Include <bits/types.h>.
diff --git a/NEWS b/NEWS
index 4d18638..9526702 100644
--- a/NEWS
+++ b/NEWS
@@ -16,7 +16,7 @@ Version 2.17
14336, 14337, 14347, 14349, 14376, 14417, 14459, 14476, 14477, 14505,
14510, 14516, 14518, 14519, 14530, 14532, 14538, 14543, 14544, 14545,
14557, 14562, 14568, 14576, 14579, 14583, 14587, 14602, 14621, 14638,
- 14645, 14648, 14652, 14660, 14661.
+ 14645, 14648, 14652, 14660, 14661, 14716.
* Support for STT_GNU_IFUNC symbols added for s390 and s390x.
Optimized versions of memcpy, memset, and memcmp added for System z10 and
diff --git a/string/str-two-way.h b/string/str-two-way.h
index d2572da..d082fe0 100644
--- a/string/str-two-way.h
+++ b/string/str-two-way.h
@@ -309,13 +309,13 @@ two_way_short_needle (const unsigned char *haystack, size_t haystack_len,
!= (haystack_char = CANON_ELEMENT (*phaystack++)))
{
RET0_IF_0 (haystack_char);
-#if CHECK_EOL
+#if !CHECK_EOL
++j;
#endif
continue;
}
-#if !CHECK_EOL
+#if CHECK_EOL
/* Calculate J if it wasn't kept up-to-date in the first-character
loop. */
j = phaystack - &haystack[suffix] - 1;