diff options
author | Adrian Kummerländer | 2014-05-24 16:14:08 +0200 |
---|---|---|
committer | Adrian Kummerländer | 2014-05-24 16:14:08 +0200 |
commit | bf88fb942d624f40218716d375744aa14b3406a8 (patch) | |
tree | fa8ac29589526595ac0f59b90547d3a1364b1168 /src/support | |
parent | 085935ddd577b0c65b4330318b5ba20492d93126 (diff) | |
download | InputXSLT-bf88fb942d624f40218716d375744aa14b3406a8.tar InputXSLT-bf88fb942d624f40218716d375744aa14b3406a8.tar.gz InputXSLT-bf88fb942d624f40218716d375744aa14b3406a8.tar.bz2 InputXSLT-bf88fb942d624f40218716d375744aa14b3406a8.tar.lz InputXSLT-bf88fb942d624f40218716d375744aa14b3406a8.tar.xz InputXSLT-bf88fb942d624f40218716d375744aa14b3406a8.tar.zst InputXSLT-bf88fb942d624f40218716d375744aa14b3406a8.zip |
Prevented FilesystemContext from resolving absolute paths
* there are situations where one may pass absolute paths to external functions which should not be resolved against the context path
** for example when reading files found by "read-directory" through its "full" value node
* this could be checked by the external functions themself
** but as this check is required by all of them it is better implemented in the FilesystemContext
Diffstat (limited to 'src/support')
-rw-r--r-- | src/support/filesystem_context.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/support/filesystem_context.cc b/src/support/filesystem_context.cc index a30bccc..eba7e45 100644 --- a/src/support/filesystem_context.cc +++ b/src/support/filesystem_context.cc @@ -20,7 +20,13 @@ FilesystemContext::FilesystemContext(const std::string& path): boost::filesystem::path FilesystemContext::resolve( const std::string& path) const { - return absolute(this->path_ / path); + const boost::filesystem::path targetPath(path); + + if ( targetPath.is_absolute() ) { + return targetPath; + } else { + return absolute(this->path_ / targetPath); + } } boost::filesystem::path FilesystemContext::resolve( |