diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | sysdeps/ia64/memchr.S | 4 |
2 files changed, 11 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index b608b24814..4b88a8601d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,11 @@ 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. + +2017-12-19 Adhemerval Zanella <adhemerval.zanella@linaro.org> [BZ #22605] * sysdeps/unix/sysv/linux/sh/clone.S (__clone): Fix exit return diff --git a/sysdeps/ia64/memchr.S b/sysdeps/ia64/memchr.S index d60cf7bd87..9a0abc6f0a 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 |