]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
parser-helper: Detect absolute pathnames and concatenate paths on Windows
authorMartin Willi <martin@revosec.ch>
Tue, 4 Mar 2014 12:59:04 +0000 (13:59 +0100)
committerMartin Willi <martin@revosec.ch>
Wed, 4 Jun 2014 13:53:09 +0000 (15:53 +0200)
src/libstrongswan/utils/parser_helper.c

index 40c6cfeddcfbecdd11f753f84eca5a29e1fe4dde..17307e92cab2afbd73e7c1431485715cf1b3b3f2 100644 (file)
@@ -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);