Clean up properly when we can't find a radius $INCLUDE regardless of the

state of errno. Don't treat it as a fatal parse error because it isn't,
so we keep parsing the rest of the dictionaries even if one is missing.

svn path=/trunk/; revision=45361
This commit is contained in:
Evan Huus 2012-10-07 01:15:16 +00:00
parent 0c966e603e
commit 29fa1e7835
1 changed files with 11 additions and 5 deletions

View File

@ -265,12 +265,18 @@
if (!yyin) {
if (errno) {
g_string_append_printf(error, "Could not open file: '%s', error: %s\n", fullpaths[include_stack_ptr], g_strerror(errno) );
g_free(fullpaths[include_stack_ptr]);
fullpaths[include_stack_ptr] = NULL;
include_stack_ptr--;
yyterminate();
g_string_append_printf(error,
"Could not open file: '%s', error: %s\n",
fullpaths[include_stack_ptr],
g_strerror(errno) );
} else {
g_string_append_printf(error,
"Could not open file: '%s', no errno\n",
fullpaths[include_stack_ptr]);
}
g_free(fullpaths[include_stack_ptr]);
fullpaths[include_stack_ptr] = NULL;
include_stack_ptr--;
} else {
linenums[include_stack_ptr] = 1;
yy_switch_to_buffer(yy_create_buffer( yyin, YY_BUF_SIZE ) );