config: do not resolve default profile during "include" processing

Application of options in the default section is "delayed" until the
whole config file is read in order to allow profile forward references.
This was run at the end of parsing a config file - but because of
"include" options, this means it's not always called at the end of the
main config file.

Use the recursion counter to prevent it from being processed after each
"include" option. This also gets rid of the resulting unintended
infinite recursion (which eventually stopped and failed loading the
config file) due to m_config_finish_default_profile() processing the
"include" option again.

Fixes #4024.
This commit is contained in:
wm4 2017-01-13 12:02:46 +01:00
parent 88dfb9a5e7
commit b26ab4d08c
1 changed files with 2 additions and 1 deletions

View File

@ -150,7 +150,8 @@ int m_config_parse(m_config_t *config, const char *location, bstr data,
}
}
m_config_finish_default_profile(config, flags);
if (config->recursion_depth == 0)
m_config_finish_default_profile(config, flags);
talloc_free(tmp);
return 1;