uxn

Varvara Ordinator, written in ANSI C(SDL2)
git clone https://git.eamoncaddigan.net/uxn.git
Log | Files | Refs | README | LICENSE

commit 31f18e1bdfca2f053d526473f504f3a4cfb7b9ff
parent b6239ad549a046ff8541032d4ff482619a7dfc1a
Author: neauoire <aliceffekt@gmail.com>
Date:   Tue,  8 Jun 2021 07:37:12 -0700

Check for valid hex in padding

Diffstat:
Msrc/uxnasm.c | 12+++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/uxnasm.c b/src/uxnasm.c @@ -296,18 +296,20 @@ pass1(FILE *f) printf("Pass 1\n"); while(fscanf(f, "%s", w) == 1) { if(skipblock(w, &ccmnt, '(', ')')) continue; - if(w[0] == '|') + if(w[0] == '|') { + if(!sihx(w + 1)) + return error("Invalid padding", w); addr = shex(w + 1); - else if(w[0] == '%') { + } else if(w[0] == '%') { if(!makemacro(w + 1, f)) - return error("Pass1 failed", w); + return error("Invalid macro", w); } else if(w[0] == '@') { if(!makelabel(w + 1, addr)) - return error("Pass1 failed", w); + return error("Invalid label", w); scpy(w + 1, scope, 64); } else if(w[0] == '&') { if(!makelabel(sublabel(subw, scope, w + 1), addr)) - return error("Pass1 failed", w); + return error("Ivalid sublabel", w); } else if(sihx(w)) addr += slen(w) / 2; else