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:
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