]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
cadence_uart: Fix buffer overflow
authorStefan Weil <sw@weilnetz.de>
Sat, 1 Sep 2012 09:12:23 +0000 (11:12 +0200)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Fri, 12 Oct 2012 02:44:20 +0000 (21:44 -0500)
Report from smatch:
hw/cadence_uart.c:413 uart_read(13) error: buffer overflow 's->r' 18 <= 18

This fixes read access to s->r[R_MAX] which is behind the limits of s->r.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com>
(cherry picked from commit 5d40097fc09fe5d34cf316a411dc27d455ac2cd0)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
hw/cadence_uart.c

index d98e53137255dce206929407f57fb71f57230ac4..f8afc4ed2621afafad5d2f9f68a51c43d2d4eb2b 100644 (file)
@@ -404,7 +404,7 @@ static uint64_t uart_read(void *opaque, target_phys_addr_t offset,
     uint32_t c = 0;
 
     offset >>= 2;
-    if (offset > R_MAX) {
+    if (offset >= R_MAX) {
         return 0;
     } else if (offset == R_TX_RX) {
         uart_read_rx_fifo(s, &c);