about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-04-30 16:53:27 +0000
committerUlrich Drepper <drepper@redhat.com>1999-04-30 16:53:27 +0000
commitd8b29eea293590e8324bb94a6096521ee76f6452 (patch)
tree9ca37aef723b9918554b827005338255e4c11d7f
parent68d7943fa266a549037715f07a2f212286ab53e1 (diff)
downloadglibc-d8b29eea293590e8324bb94a6096521ee76f6452.tar.gz
glibc-d8b29eea293590e8324bb94a6096521ee76f6452.tar.xz
glibc-d8b29eea293590e8324bb94a6096521ee76f6452.zip
Update.
	* sysdeps/i386/strchrnul.S: Fix bugs which let to wrong results in
	25% of all cases.
-rw-r--r--ChangeLog3
-rw-r--r--sysdeps/i386/strchrnul.S4
2 files changed, 5 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 0609e48502..7c7a9721d3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 1999-04-30  Ulrich Drepper  <drepper@cygnus.com>
 
+	* sysdeps/i386/strchrnul.S: Fix bugs which let to wrong results in
+	25% of all cases.
+
 	* sysdeps/i386/i486/bits/string.h: Replace __uintXX_t types with
 	base types.
 
diff --git a/sysdeps/i386/strchrnul.S b/sysdeps/i386/strchrnul.S
index 45950c3564..b99a439587 100644
--- a/sysdeps/i386/strchrnul.S
+++ b/sysdeps/i386/strchrnul.S
@@ -156,12 +156,12 @@ L(11):	movl (%eax), %ecx	/* get word (= 4 bytes) in question */
 	addl %ecx, %edi		/* add the magic value to the word.  We get
 				   carry bits reported for each byte which
 				   is *not* 0 */
-	jnc L(71)		/* highest byte is NUL => return NULL */
+	jnc L(7)		/* highest byte is NUL => return NULL */
 	xorl %ecx, %edi		/* (word+magic)^word */
 	orl $0xfefefeff, %edi	/* set all non-carry bits */
 	incl %edi		/* add 1: if one carry bit was *not* set
 				   the addition will not result in 0.  */
-	jnz L(71)		/* found NUL => return NULL */
+	jnz L(7)		/* found NUL => return NULL */
 
 	movl 4(%eax), %ecx	/* get word (= 4 bytes) in question */
 	xorl %edx, %ecx		/* XOR with word c|c|c|c => bytes of str == c