]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
sparc: Fix sparc64 memmove length comparison (BZ 31266)
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Thu, 18 Jan 2024 13:52:18 +0000 (10:52 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Fri, 2 Feb 2024 12:49:30 +0000 (09:49 -0300)
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)

sysdeps/sparc/sparc64/memmove.S

index db6f4f0e842b9535a400794408b61b6172a5cd0e..62b19ebc1b86e823bb8a152590c1439ed92716a8 100644 (file)
@@ -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  */