From c8a7eb85d06c71a184a7fe5aabd732d0779900cf Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Mon, 15 Jul 2024 14:10:35 -0400 Subject: bas.c: don't get stuck in an infinite loop if soffset == 0. --- bas.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bas.c b/bas.c index 6be34f7..ddc424f 100644 --- a/bas.c +++ b/bas.c @@ -343,6 +343,10 @@ void walk_code(unsigned int startlineno, unsigned int endlineno) { pos = linepos + 3; while(pos < nextpos) { /* loop over statements within a line */ soffset = program[pos]; + if(!soffset) { + fprintf(stderr, "Fatal: next-statement offset is 0 at line %d, pos %04x\n", lineno, pos); + exit(1); + } end = linepos + soffset; CALL(on_start_stmt); -- cgit v1.2.3