X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fmisc.c;h=811ef07e576484826ea0ebdc07889848cac8cbee;hb=a84bd00a438ff458c2d74d1d1784deefe12bf84a;hp=757872e8647a8c11d35b36238e3579c74fdc99a0;hpb=01295e7cfce6354e2fad160ba0ce2880546d7a60;p=rocksndiamonds.git diff --git a/src/libgame/misc.c b/src/libgame/misc.c index 757872e8..811ef07e 100644 --- a/src/libgame/misc.c +++ b/src/libgame/misc.c @@ -1397,6 +1397,7 @@ struct FileInfo *getFileListFromConfigList(struct ConfigInfo *config_list, for (i=0; config_list[i].token != NULL; i++) { int len_config_token = strlen(config_list[i].token); + int len_config_value = strlen(config_list[i].value); boolean is_file_entry = TRUE; for (j=0; suffix_list[j].token != NULL; j++) @@ -1419,8 +1420,18 @@ struct FileInfo *getFileListFromConfigList(struct ConfigInfo *config_list, if (i > 0) list_pos++; - if (list_pos >= num_file_list_entries) - Error(ERR_EXIT, "inconsistant config list information -- please fix"); + if (list_pos > num_file_list_entries - 1) + break; + + /* simple sanity check if this is really a file definition */ + if (strcmp(&config_list[i].value[len_config_value - 4], ".pcx") != 0 && + strcmp(&config_list[i].value[len_config_value - 4], ".wav") != 0 && + strcmp(config_list[i].value, UNDEFINED_FILENAME) != 0) + { + Error(ERR_RETURN, "Configuration directive '%s' -> '%s':", + config_list[i].token, config_list[i].value); + Error(ERR_EXIT, "This seems to be no valid definition -- please fix"); + } file_list[list_pos].token = config_list[i].token; file_list[list_pos].default_filename = config_list[i].value;