This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch release/2.26/master updated. glibc-2.26-129-g268bd5f


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, release/2.26/master has been updated
       via  268bd5f053204b80e771169e55b45704c04d77ad (commit)
      from  989f59db3940ab4b76176af9a62b6980eafb7a22 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=268bd5f053204b80e771169e55b45704c04d77ad

commit 268bd5f053204b80e771169e55b45704c04d77ad
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Thu Dec 14 09:05:46 2017 -0200

    ia64: Fix memchr for large input sizes (BZ #22603)
    
    Current optimized ia64 memchr uses a strategy to check for last address
    by adding the input one with expected size.  However it does not take
    care for possible overflow.
    
    It was triggered by 3038145ca23 where default rawmemchr now uses memchr
    (p, c, (size_t)-1).
    
    This patch fixes it by implement a satured addition where overflows
    sets the maximum pointer size to UINTPTR_MAX.
    
    Checked on ia64-linux-gnu where it fixes both stratcliff and
    test-rawmemchr failures.
    
    	Adhemerval Zanella  <adhemerval.zanella@linaro.org>
    	James Clarke <jrtc27@jrtc27.com>
    
    	[BZ #22603]
    	* sysdeps/ia64/memchr.S (__memchr): Avoid overflow in pointer
    	addition.
    
    (cherry picked from commit 3bb1ef58b989012f8199b82af6ec136da2f9fda3)

diff --git a/ChangeLog b/ChangeLog
index f921251..efc8395 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2017-12-19  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+	    James Clarke <jrtc27@jrtc27.com>
+
+	[BZ #22603]
+	* sysdeps/ia64/memchr.S (__memchr): Avoid overflow in pointer
+	addition.
+
 2018-01-08  Dmitry V. Levin  <ldv@altlinux.org>
 
 	* sysdeps/unix/sysv/linux/tst-ttyname.c (do_in_chroot_1): Skip the
diff --git a/sysdeps/ia64/memchr.S b/sysdeps/ia64/memchr.S
index d60cf7b..9a0abc6 100644
--- a/sysdeps/ia64/memchr.S
+++ b/sysdeps/ia64/memchr.S
@@ -67,6 +67,10 @@ ENTRY(__memchr)
 	.body
 	mov	ret0 = str
 	add	last = str, in2		// last byte
+	;;
+	cmp.ltu	p6, p0 = last, str
+	;;
+(p6)	mov	last = -1
 	and	tmp = 7, str		// tmp = str % 8
 	cmp.ne	p7, p0 = r0, r0		// clear p7
 	extr.u	chr = in1, 0, 8		// chr = (unsigned char) in1

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog             |    7 +++++++
 sysdeps/ia64/memchr.S |    4 ++++
 2 files changed, 11 insertions(+), 0 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]