aboutsummaryrefslogtreecommitdiff
path: root/accel/tcg
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2023-06-06 10:16:29 -0700
committerRichard Henderson <richard.henderson@linaro.org>2023-06-06 12:11:02 -0700
commitc0dde5fc5ccce56b69095bc29af72987efd65d1e (patch)
treef0b22dbba59b83a3ee8c9366cc0c65f0b9992437 /accel/tcg
parent80bdd58ae41ee7f65081c33e5f96cd6033da8337 (diff)
downloadqemu-c0dde5fc5ccce56b69095bc29af72987efd65d1e.zip
qemu-c0dde5fc5ccce56b69095bc29af72987efd65d1e.tar.gz
qemu-c0dde5fc5ccce56b69095bc29af72987efd65d1e.tar.bz2
accel/tcg: Fix undefined shift in store_whole_le16
The computation is documented as unused in this case, but triggers an ubsan error: ../accel/tcg/ldst_atomicity.c.inc:837:33: runtime error: shift exponent -32 is negative SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../accel/tcg/ldst_atomicity.c.inc:837:33 in Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-Id: <20230606171629.98157-1-richard.henderson@linaro.org>
Diffstat (limited to 'accel/tcg')
-rw-r--r--accel/tcg/ldst_atomicity.c.inc4
1 files changed, 3 insertions, 1 deletions
diff --git a/accel/tcg/ldst_atomicity.c.inc b/accel/tcg/ldst_atomicity.c.inc
index 2514899..de70531 100644
--- a/accel/tcg/ldst_atomicity.c.inc
+++ b/accel/tcg/ldst_atomicity.c.inc
@@ -833,7 +833,9 @@ static uint64_t store_whole_le16(void *pv, int size, Int128 val_le)
}
store_atom_insert_al16(pv - o, v, m);
- /* Unused if sz <= 64. */
+ if (sz <= 64) {
+ return 0;
+ }
return int128_gethi(val_le) >> (sz - 64);
}