From bc9fd3735d1493f179dd1ffe45ba565193a880d9 Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Tue, 4 Mar 2014 13:59:04 +0100 Subject: [PATCH] parser-helper: Detect absolute pathnames and concatenate paths on Windows --- src/libstrongswan/utils/parser_helper.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/libstrongswan/utils/parser_helper.c b/src/libstrongswan/utils/parser_helper.c index 40c6cfeddc..17307e92ca 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); -- 2.47.2