aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/x86_64/memchr.S2
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 8dc74b4..6926c7e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,12 +1,15 @@
2009-05-08 Ulrich Drepper <drepper@redhat.com>
+ * sysdeps/x86_64/memchr.S: Handle invalid buffer pointers when
+ count is zero.
+
* po/da.po: Update from translation team.
2009-05-05 Jakub Jelinek <jakub@redhat.com>
* io/sys/stat.h (fstatat64): Guard prototype with __USE_LARGEFILE64,
guard __extern_inline wrapper with __USE_ATFILE instead of __USE_GNU.
-
+
2009-05-05 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/sys/personality.h: Add ADDR_COMPAT_LAYOUT
diff --git a/sysdeps/x86_64/memchr.S b/sysdeps/x86_64/memchr.S
index 09ba6d4..54b7af5 100644
--- a/sysdeps/x86_64/memchr.S
+++ b/sysdeps/x86_64/memchr.S
@@ -26,7 +26,9 @@ ENTRY (memchr)
movq %rdi, %rcx
punpcklbw %xmm1, %xmm1
andq $~15, %rdi
+ testq %rdx, %rdx
punpcklbw %xmm1, %xmm1
+ jz 3f
orl $0xffffffff, %esi
movdqa (%rdi), %xmm0
pshufd $0, %xmm1, %xmm1