summaryrefslogtreecommitdiff
path: root/src/other_tools/utils/parse_archive.cpp
diff options
context:
space:
mode:
authorPaul Cristian Sarbu <paul.cristian.sarbu@huawei.com>2025-01-10 15:19:21 +0100
committerKlaus Aehlig <klaus.aehlig@huawei.com>2025-01-13 16:23:40 +0100
commit5b2771a18e46f59062147d22cf173f50eeb014c3 (patch)
tree821151de7e31ff7216cdd63365e274827d613ee4 /src/other_tools/utils/parse_archive.cpp
parent83ce5b99d48642d929e6270fa38fe1a475275fe8 (diff)
downloadjustbuild-5b2771a18e46f59062147d22cf173f50eeb014c3.tar.gz
just-mr setup: Fix ensuring field 'subdir' only accepts relative paths
(cherry-picked from a8b50ad395b72c6933c164d064d86d60cd6b594c)
Diffstat (limited to 'src/other_tools/utils/parse_archive.cpp')
-rw-r--r--src/other_tools/utils/parse_archive.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/other_tools/utils/parse_archive.cpp b/src/other_tools/utils/parse_archive.cpp
index fb03309a..267d2d2d 100644
--- a/src/other_tools/utils/parse_archive.cpp
+++ b/src/other_tools/utils/parse_archive.cpp
@@ -121,6 +121,13 @@ auto ParseArchiveDescription(ExpressionPtr const& repo_desc,
? repo_desc_subdir->String()
: "")
.lexically_normal();
+ if (subdir.is_absolute()) {
+ (*logger)(fmt::format("ArchiveCheckout: Expected field \"subdir\" to "
+ "be a relative path, but found {}",
+ subdir.string()),
+ /*fatal=*/true);
+ return std::nullopt;
+ }
// check "special" pragma
auto repo_desc_pragma = repo_desc->At("pragma");