Check config_file arguments for NULL
[neverball] / share / base_config.c
index 7750fe3..6df2fae 100644 (file)
@@ -45,11 +45,11 @@ static const char *config_file(const char *path, const char *file)
 {
     static char absolute[MAXSTR];
 
-    size_t d = strlen(path);
+    size_t d = path ? strlen(path) : 0;
 
-    strncpy(absolute, path, MAXSTR - 1);
+    strncpy(absolute, path ? path : "", MAXSTR - 1);
     strncat(absolute, "/",  MAXSTR - d - 1);
-    strncat(absolute, file, MAXSTR - d - 2);
+    strncat(absolute, file ? file : "", MAXSTR - d - 2);
 
     return absolute;
 }
@@ -103,7 +103,7 @@ int config_data_path(const char *path, const char *file)
         return 1;
     }
 
-    if (CONFIG_DATA && config_test(CONFIG_DATA, file))
+    if (config_test(CONFIG_DATA, file))
     {
         strncpy(data_path, CONFIG_DATA, MAXSTR);
         return 1;