diff options
author | Klaus Aehlig <klaus.aehlig@huawei.com> | 2022-06-08 16:00:03 +0200 |
---|---|---|
committer | Klaus Aehlig <klaus.aehlig@huawei.com> | 2022-06-09 12:39:32 +0200 |
commit | 9c6c4190d8edcb4d9b3444db173ed6d77a3123f4 (patch) | |
tree | 91a3ba987beee4106d2f05ec2980521765b0fd5f /src/buildtool/build_engine/target_map/utils.cpp | |
parent | c492671a82491df34fd125e7c87817d816b17a78 (diff) | |
download | justbuild-9c6c4190d8edcb4d9b3444db173ed6d77a3123f4.tar.gz |
Disallow upwards-facing inputs in actions and tree constructors
Diffstat (limited to 'src/buildtool/build_engine/target_map/utils.cpp')
-rw-r--r-- | src/buildtool/build_engine/target_map/utils.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/buildtool/build_engine/target_map/utils.cpp b/src/buildtool/build_engine/target_map/utils.cpp index 4dcafa4f..ea3ce0a5 100644 --- a/src/buildtool/build_engine/target_map/utils.cpp +++ b/src/buildtool/build_engine/target_map/utils.cpp @@ -108,6 +108,12 @@ auto BuildMaps::Target::Utils::tree_conflict(const ExpressionPtr& map) return "."; } auto p = std::filesystem::path{path}; + if (p.is_absolute()) { + return p.string(); + } + if (*p.begin() == "..") { + return p.string(); + } auto insert_result = blocked.insert(p); if (not insert_result.second) { return p.string(); // duplicate path |