aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2024-01-18 10:52:18 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2024-02-02 08:53:58 -0300
commitf4171ba5e5a772217ed0ebb80701fe1698407252 (patch)
treea84a1210cd83072b6342e73fd211db3252f0c6e8
parentb233c4496445f4cfe343ed2d3079a427511a14c8 (diff)
downloadglibc-f4171ba5e5a772217ed0ebb80701fe1698407252.tar
glibc-f4171ba5e5a772217ed0ebb80701fe1698407252.tar.gz
glibc-f4171ba5e5a772217ed0ebb80701fe1698407252.tar.bz2
glibc-f4171ba5e5a772217ed0ebb80701fe1698407252.zip
sparc: Fix sparc64 memmove length comparison (BZ 31266)
The small counts copy bytes comparsion should be unsigned (as the memmove size argument). It fixes string/tst-memmove-overflow on sparcv9, where the input size triggers an invalid code path. Checked on sparc64-linux-gnu and sparcv9-linux-gnu. (cherry picked from commit 926a4bdbb5fc8955570208b5571b2d04c6ffbd1d)
-rw-r--r--sysdeps/sparc/sparc64/memmove.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/sysdeps/sparc/sparc64/memmove.S b/sysdeps/sparc/sparc64/memmove.S
index 8d46f2cd4e..7746684160 100644
--- a/sysdeps/sparc/sparc64/memmove.S
+++ b/sysdeps/sparc/sparc64/memmove.S
@@ -38,7 +38,7 @@ ENTRY(memmove)
/*
* normal, copy forwards
*/
-2: ble %XCC, .Ldbytecp
+2: bleu %XCC, .Ldbytecp
andcc %o1, 3, %o5 /* is src word aligned */
bz,pn %icc, .Laldst
cmp %o5, 2 /* is src half-word aligned */