]> git.xonotic.org Git - xonotic/gmqcc.git/blobdiff - main.c
Fix more bugs (mostly possible NULL pointer dereferences)
[xonotic/gmqcc.git] / main.c
diff --git a/main.c b/main.c
index 98de0e9176b4e9924e07757b536b41a6bee2446b..ab9520ade17bfbb42119d05c398aacca87e8bdf0 100644 (file)
--- a/main.c
+++ b/main.c
@@ -25,8 +25,6 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <ctype.h>
-
 
 #include "gmqcc.h"
 #include "lexer.h"
@@ -413,7 +411,7 @@ static bool options_parse(int argc, char **argv) {
                         con_out("option -O requires a numerical argument, or optimization name with an optional 'no-' prefix\n");
                         return false;
                     }
-                    if (isdigit(argarg[0])) {
+                    if (util_isdigit(argarg[0])) {
                         uint32_t val = (uint32_t)strtol(argarg, NULL, 10);
                         OPTS_OPTION_U32(OPTION_O) = val;
                         opts_setoptimlevel(val);
@@ -538,9 +536,9 @@ static bool progs_nextline(char **out, size_t *alen,FILE *src) {
         return false;
 
     /* start at first non-blank */
-    for (start = line; isspace(*start); ++start) {}
+    for (start = line; util_isspace(*start); ++start) {}
     /* end at the first non-blank */
-    for (end = start;  *end && !isspace(*end);  ++end)   {}
+    for (end = start; *end && !util_isspace(*end);  ++end)   {}
 
     *out = line;
     /* move the actual filename to the beginning */
@@ -793,7 +791,7 @@ cleanup:
     vec_free(ppems);
 
     if (!OPTS_OPTION_BOOL(OPTION_PP_ONLY))
-        parser_cleanup(parser);
+        if(parser) parser_cleanup(parser);
     if (opts_output_free)
         mem_d(OPTS_OPTION_STR(OPTION_OUTPUT));
     if (operators_free)