about summary refs log tree commit diff
path: root/sysdeps/i386/i686/strtok.S
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/i686/strtok.S
parent71ea167b1d3b01e78378b4863d87b5affb5def5f (diff)
downloadglibc-bc795d0b3065b9d03fcbf200ae889047350323df.tar.gz
glibc-bc795d0b3065b9d03fcbf200ae889047350323df.tar.xz
glibc-bc795d0b3065b9d03fcbf200ae889047350323df.zip
[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/i686/strtok.S')
-rw-r--r--sysdeps/i386/i686/strtok.S10
1 files changed, 7 insertions, 3 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)