From f6df4314945c1d37d314a7c88553b97b23c748e9 Mon Sep 17 00:00:00 2001 From: Miquel Sabaté Solà Date: Fri, 9 Oct 2026 21:45:05 +0200 Subject: vnf,runrom: detect bad data access MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This includes detection for: - Stack underflows (it was theoretically already there but it had never been properly tested). - Load/store out of bounds for a given variable known via the .nasm/ directory. - Load out of bounds on a set of data referenced via a raw label (see commit aa5174fc055d ("xixanta: Add an hint for the ending of data labels")). Signed-off-by: Miquel Sabaté Solà --- tests/expected/runrom/overflow-reset.txt | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 tests/expected/runrom/overflow-reset.txt (limited to 'tests/expected/runrom/overflow-reset.txt') diff --git a/tests/expected/runrom/overflow-reset.txt b/tests/expected/runrom/overflow-reset.txt new file mode 100644 index 0000000..6097a9c --- /dev/null +++ b/tests/expected/runrom/overflow-reset.txt @@ -0,0 +1,8 @@ + PC: $8000, cycles: 7, registers: [a: $00, x: $00, y: $00, sp: $FD], status: ----I-- +ldx #$00 PC: $8002, cycles: 9, registers: [a: $00, x: $00, y: $00, sp: $FD], status: ----IZ- +lda $00, x PC: $8004, cycles: 13, registers: [a: $00, x: $00, y: $00, sp: $FD], status: ----IZ- +dex PC: $8005, cycles: 15, registers: [a: $00, x: $FF, y: $00, sp: $FD], status: ----I-- + +@: +lda $00, x PC: $8005, cycles: 15, registers: [a: $00, x: $FF, y: $00, sp: $FD], status: ----I-- +error: out of bounds: indexed access to $00FF falls out of 'zp_buffer' ($00-$10; bounded inclusively below and exclusively above) -- cgit v1.2.3