[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 3/7] sd/pl181.c: Avoid undefined shift behaviour in R
From: |
Peter Maydell |
Subject: |
[Qemu-devel] [PULL 3/7] sd/pl181.c: Avoid undefined shift behaviour in RWORD macro |
Date: |
Mon, 15 Jul 2013 17:01:31 +0100 |
Add a cast to avoid potentially shifting into the sign bit of
a signed value, which is undefined behaviour in C.
(Detected with clang's -fsanitize=undefined.)
Signed-off-by: Peter Maydell <address@hidden>
Message-id: address@hidden
---
hw/sd/pl181.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/sd/pl181.c b/hw/sd/pl181.c
index 4b17234..f5eb1e4 100644
--- a/hw/sd/pl181.c
+++ b/hw/sd/pl181.c
@@ -175,7 +175,7 @@ static void pl181_send_command(pl181_state *s)
if (rlen < 0)
goto error;
if (s->cmd & PL181_CMD_RESPONSE) {
-#define RWORD(n) ((response[n] << 24) | (response[n + 1] << 16) \
+#define RWORD(n) (((uint32_t)response[n] << 24) | (response[n + 1] << 16) \
| (response[n + 2] << 8) | response[n + 3])
if (rlen == 0 || (rlen == 4 && (s->cmd & PL181_CMD_LONGRESP)))
goto error;
--
1.7.9.5
- [Qemu-devel] [PULL 0/7] arm-devs queue, Peter Maydell, 2013/07/15
- [Qemu-devel] [PULL 2/7] hw/cpu/a15mpcore: Correct default value for num-irq, Peter Maydell, 2013/07/15
- [Qemu-devel] [PULL 1/7] char/cadence_uart: Fix reset for unattached instances, Peter Maydell, 2013/07/15
- [Qemu-devel] [PULL 7/7] ARM/highbank: add support for Calxeda ECX-2000 / Midway, Peter Maydell, 2013/07/15
- [Qemu-devel] [PULL 6/7] ARM/highbank: prepare for adding similar machines, Peter Maydell, 2013/07/15
- [Qemu-devel] [PULL 3/7] sd/pl181.c: Avoid undefined shift behaviour in RWORD macro,
Peter Maydell <=
- [Qemu-devel] [PULL 4/7] hw/dma/omap_dma: Fix bugs with DMA requests above 32, Peter Maydell, 2013/07/15
- [Qemu-devel] [PULL 5/7] hw/arm/vexpress: Add alias for flash at address 0 on A15 board, Peter Maydell, 2013/07/15