33 lines
1.1 KiB
Diff
33 lines
1.1 KiB
Diff
|
|
From aac57faf5425b472a72132b09f4b3a2aa1f77a63 Mon Sep 17 00:00:00 2001
|
||
|
|
From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
||
|
|
Date: Thu, 18 Jan 2024 10:52:18 -0300
|
||
|
|
Subject: [PATCH 5/6] 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)
|
||
|
|
---
|
||
|
|
sysdeps/sparc/sparc64/memmove.S | 2 +-
|
||
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||
|
|
|
||
|
|
diff --git a/sysdeps/sparc/sparc64/memmove.S b/sysdeps/sparc/sparc64/memmove.S
|
||
|
|
index db6f4f0e84..62b19ebc1b 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 */
|
||
|
|
--
|
||
|
|
2.33.0
|
||
|
|
|