diff --git a/hw/char/cadence_uart.c b/hw/char/cadence_uart.c index 486591bf071a94045ad1c6d1e75f28879ab0798a..797787823e0672cb57c5ba1b24f017c9394c5fd7 100644 --- a/hw/char/cadence_uart.c +++ b/hw/char/cadence_uart.c @@ -375,6 +375,9 @@ static void uart_write(void *opaque, hwaddr offset, DB_PRINT(" offset:%x data:%08x\n", (unsigned)offset, (unsigned)value); offset >>= 2; + if (offset >= CADENCE_UART_R_MAX) { + return; + } switch (offset) { case R_IER: /* ier (wts imr) */ s->r[R_IMR] |= value;