summaryrefslogtreecommitdiff
path: root/sysdeps/i386
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2006-01-10 00:25:07 +0000
committerUlrich Drepper <drepper@redhat.com>2006-01-10 00:25:07 +0000
commitbc795d0b3065b9d03fcbf200ae889047350323df (patch)
treeb508e2df5a57bb0c0e58e78db43ecebf2eb96fc3 /sysdeps/i386
parent71ea167b1d3b01e78378b4863d87b5affb5def5f (diff)
[BZ #2126]
* sysdeps/i386/i686/strtok.S: Store pointer to NUL byte if NULL is returned. * sysdeps/i386/strtok.S: Likewise. * sysdeps/x86_64/strtok.S: Likewise. * string/Makefile (tests): Add bug-strtok1. * string/bug-strtok1.c: New file.
Diffstat (limited to 'sysdeps/i386')
-rw-r--r--sysdeps/i386/i686/strtok.S10
-rw-r--r--sysdeps/i386/strtok.S6
2 files changed, 12 insertions, 4 deletions
diff --git a/sysdeps/i386/i686/strtok.S b/sysdeps/i386/i686/strtok.S
index 0cd266a2a1..fe225e5485 100644
--- a/sysdeps/i386/i686/strtok.S
+++ b/sysdeps/i386/i686/strtok.S
@@ -1,6 +1,6 @@
/* strtok (str, delim) -- Return next DELIM separated token from STR.
For Intel 80686.
- Copyright (C) 1998, 2000, 2001, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2000, 2001, 2005, 2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -250,9 +250,9 @@ L(8): cmpl %eax, %edx
cmovne %ecx, %edx
/* Store the pointer to the next character. */
-# ifdef USE_AS_STRTOK_R
+#ifdef USE_AS_STRTOK_R
movl SAVE(%esp), %ecx
-# endif
+#endif
movl %edx, SAVE_PTR
CHECK_BOUNDS_HIGH (%edx, SAVE_PTR, jb)
RETURN_BOUNDED_POINTER (SAVE_PTR)
@@ -271,6 +271,10 @@ L(epilogue):
L(returnNULL):
xorl %eax, %eax
+#ifdef USE_AS_STRTOK_R
+ movl SAVE(%esp), %ecx
+#endif
+ movl %edx, SAVE_PTR
RETURN_NULL_BOUNDED_POINTER
jmp L(epilogue)
diff --git a/sysdeps/i386/strtok.S b/sysdeps/i386/strtok.S
index 88b343b6fe..c5f40a83b1 100644
--- a/sysdeps/i386/strtok.S
+++ b/sysdeps/i386/strtok.S
@@ -1,6 +1,6 @@
/* strtok (str, delim) -- Return next DELIM separated token from STR.
For Intel 80x86, x>=3.
- Copyright (C) 1996-1998, 2000, 2001, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1996-1998,2000,2001,2005,2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@@ -385,6 +385,10 @@ L(epilogue):
L(returnNULL):
xorl %eax, %eax
+#ifdef USE_AS_STRTOK_R
+ movl SAVE(%esp), %ecx
+#endif
+ movl %edx, SAVE_PTR
RETURN_NULL_BOUNDED_POINTER
jmp L(epilogue)