summaryrefslogtreecommitdiff
path: root/src/buildtool/build_engine/target_map/utils.cpp
diff options
context:
space:
mode:
authorKlaus Aehlig <klaus.aehlig@huawei.com>2022-06-08 16:00:03 +0200
committerKlaus Aehlig <klaus.aehlig@huawei.com>2022-06-09 12:39:32 +0200
commit9c6c4190d8edcb4d9b3444db173ed6d77a3123f4 (patch)
tree91a3ba987beee4106d2f05ec2980521765b0fd5f /src/buildtool/build_engine/target_map/utils.cpp
parentc492671a82491df34fd125e7c87817d816b17a78 (diff)
downloadjustbuild-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.cpp6
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