From bc795d0b3065b9d03fcbf200ae889047350323df Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 10 Jan 2006 00:25:07 +0000 Subject: [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. --- sysdeps/i386/i686/strtok.S | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'sysdeps/i386/i686') 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 , 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) -- cgit 1.4.1