Skip to content
Snippets Groups Projects
Commit 7a8b2fe4 authored by Robert Schmidt's avatar Robert Schmidt
Browse files

config module: print clear error when config file does not exist

Print a clear error if a config file does not exist (unclear previously,
when the user would get a confusing, unspecific, "file I/O error" on
line 0)

I tried to free the memory that had been allocated at that point, and
verified that using the address sanitizer. Nevertheless, the function
does too much, and is too complicated for refactoring.
parent b9fd5a6f
No related branches found
No related tags found
No related merge requests found
...@@ -343,9 +343,20 @@ configmodule_interface_t *load_configmodule(int argc, ...@@ -343,9 +343,20 @@ configmodule_interface_t *load_configmodule(int argc,
atoken = strtok_r(NULL,":",&strtokctx); atoken = strtok_r(NULL,":",&strtokctx);
} }
printf("[CONFIG] get parameters from %s ", cfgmode);
for (i = 0; i < cfgptr->num_cfgP; i++) { for (i = 0; i < cfgptr->num_cfgP; i++) {
printf("%s ", cfgptr->cfgP[i]); /* check if that file actually exists */
if (access(cfgptr->cfgP[i], F_OK) != 0) {
fprintf(stderr, "error: file %s does not exist\n", cfgptr->cfgP[i]);
for (int j = 0; j < cfgptr->num_cfgP; ++j)
free(cfgptr->cfgP[j]);
free(modeparams);
free(cfgptr->cfgmode);
free(cfgptr->argv_info);
free(cfgptr);
if (cfgmode != NULL)
free(cfgmode);
return NULL;
}
} }
if (cfgptr->rtflags & CONFIG_PRINTPARAMS) { if (cfgptr->rtflags & CONFIG_PRINTPARAMS) {
......
...@@ -576,8 +576,10 @@ int config_libconfig_init(configmodule_interface_t *cfg) ...@@ -576,8 +576,10 @@ int config_libconfig_init(configmodule_interface_t *cfg)
config_set_auto_convert (&(libconfig_privdata.cfg), CONFIG_TRUE); config_set_auto_convert (&(libconfig_privdata.cfg), CONFIG_TRUE);
/* Read the file. If there is an error, report it and exit. */ /* Read the file. If there is an error, report it and exit. */
if( config_read_file(&(libconfig_privdata.cfg), libconfig_privdata.configfile) == CONFIG_FALSE) { if( config_read_file(&(libconfig_privdata.cfg), libconfig_privdata.configfile) == CONFIG_FALSE) {
fprintf(stderr,"[LIBCONFIG] %s %d file %s - line %d: %s\n",__FILE__, __LINE__, fprintf(stderr,
libconfig_privdata.configfile, config_error_line(&(libconfig_privdata.cfg)), "[LIBCONFIG] file %s - line %d: %s\n",
libconfig_privdata.configfile,
config_error_line(&(libconfig_privdata.cfg)),
config_error_text(&(libconfig_privdata.cfg))); config_error_text(&(libconfig_privdata.cfg)));
config_destroy(&(libconfig_privdata.cfg)); config_destroy(&(libconfig_privdata.cfg));
printf( "\n"); printf( "\n");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment