aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstrongswan/utils/parser_helper.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstrongswan/utils/parser_helper.c')
-rw-r--r--src/libstrongswan/utils/parser_helper.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/libstrongswan/utils/parser_helper.c b/src/libstrongswan/utils/parser_helper.c
index 40c6cfedd..17307e92c 100644
--- a/src/libstrongswan/utils/parser_helper.c
+++ b/src/libstrongswan/utils/parser_helper.c
@@ -140,7 +140,7 @@ METHOD(parser_helper_t, file_include, void,
return;
}
- if (!file->name || pattern[0] == '/')
+ if (!file->name || path_absolute(pattern))
{ /* absolute path */
if (snprintf(pat, sizeof(pat), "%s", pattern) >= sizeof(pat))
{
@@ -152,7 +152,8 @@ METHOD(parser_helper_t, file_include, void,
else
{ /* base relative paths to the directory of the current file */
char *dir = path_dirname(file->name);
- if (snprintf(pat, sizeof(pat), "%s/%s", dir, pattern) >= sizeof(pat))
+ if (snprintf(pat, sizeof(pat), "%s%s%s", dir, DIRECTORY_SEPARATOR,
+ pattern) >= sizeof(pat))
{
PARSER_DBG1(&this->public, "include pattern too long, ignored");
free(dir);