Blob Blame History Raw
Prevent sscanf stack smashing, and fix two GCC warnings.

diff -Nur compface-1.5.2-prepped/file.c compface-1.5.2-modified/file.c
--- compface-1.5.2-prepped/file.c	2006-08-04 18:58:17.000000000 +0200
+++ compface-1.5.2-modified/file.c	2006-08-04 18:59:30.000000000 +0200
@@ -80,7 +80,7 @@
 	static char table_inv[] = { 0,8,4,12,2,10,6,14,1,9, 5,13, 3,11, 7,15 };
 	static char table_nop[] = { 0,1,2, 3,4, 5,6, 7,8,9,10,11,12,13,14,15 };
 	char *table = table_nop;	/* optionally invert bits in nibble */
-	register inc = 0;		/* optionally swap nimmles */
+	register int inc = 0;		/* optionally swap nimmles */
 	int bits;
 
 	t = s = fbuf;
@@ -91,9 +91,9 @@
 			char type1[128];
 			char type2[128];
 			while (*s && *s++ != '\n');
-			if (sscanf(s, "#define %*s %d", &bits) == 1) if (bits == 48) {
+			if ((sscanf(s, "#define %*s %d", &bits) == 1) && (bits == 48)) {
 				while (*s && *s++ != '\n');
-				if (sscanf(s, "static %s %s", type1,type2)==2 &&
+				if (sscanf(s, "static %127s %127s", type1,type2)==2 &&
 					(!strcmp(type1, "char") || 
 				    	 !strcmp(type2, "char"))) {
 						while (*s && *s++ != '\n');