From bba5fa654c2a7be5bbbf0f539ca1e0d220f4910e Mon Sep 17 00:00:00 2001 From: Toby Jaffey Date: Fri, 12 Dec 2025 15:01:56 +0000 Subject: [PATCH] Fix off-by-one error which refused to read final byte of extram --- uvm32/uvm32.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/uvm32/uvm32.c b/uvm32/uvm32.c index 9ce2c68..1599b7e 100644 --- a/uvm32/uvm32.c +++ b/uvm32/uvm32.c @@ -160,7 +160,7 @@ bool get_safeptr(uvm32_state_t *vmst, uint32_t addr, uint32_t len, uvm32_evt_sys return false; } else { uint32_t ptrstart = addr - UVM32_EXTRAM_BASE; - if ((ptrstart > vmst->extramLen) || (ptrstart + len >= vmst->extramLen)) { + if ((ptrstart > vmst->extramLen) || (ptrstart + len > vmst->extramLen)) { setStatusErr(vmst, UVM32_ERR_MEM_RD); buf->ptr = (uint8_t *)NULL; buf->len = 0; @@ -172,7 +172,7 @@ bool get_safeptr(uvm32_state_t *vmst, uint32_t addr, uint32_t len, uvm32_evt_sys } } else { uint32_t ptrstart = addr - MINIRV32_RAM_IMAGE_OFFSET; - if ((ptrstart > UVM32_MEMORY_SIZE) || (ptrstart + len >= UVM32_MEMORY_SIZE)) { + if ((ptrstart > UVM32_MEMORY_SIZE) || (ptrstart + len > UVM32_MEMORY_SIZE)) { setStatusErr(vmst, UVM32_ERR_MEM_RD); buf->ptr = (uint8_t *)NULL; buf->len = 0;