diff options
author | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2025-05-09 18:07:21 +0200 |
---|---|---|
committer | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2025-06-04 14:34:44 +0200 |
commit | ed25b0f77690abe1f04e4cdcb284b7e17208d169 (patch) | |
tree | cbbd2988aad894a3444b1bae047577dad24b0ecc /src/buildtool/common/repository_config.cpp | |
parent | 811e9be4cc9604dba3d768639444c0d9f849a3c7 (diff) | |
download | justbuild-ed25b0f77690abe1f04e4cdcb284b7e17208d169.tar.gz |
RepositoryConfig: Ensure consistency in reading blobs and trees
...with respect to rejecting invalid entries such as upwards
symlinks. Also ensure that valid trees are only checked once by
remebering known valid tress though marker files in local storage.
Diffstat (limited to 'src/buildtool/common/repository_config.cpp')
-rw-r--r-- | src/buildtool/common/repository_config.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/buildtool/common/repository_config.cpp b/src/buildtool/common/repository_config.cpp index e47fc8d3..988c65cd 100644 --- a/src/buildtool/common/repository_config.cpp +++ b/src/buildtool/common/repository_config.cpp @@ -16,6 +16,7 @@ #include <initializer_list> +#include "src/buildtool/file_system/git_tree_utils.hpp" #include "src/utils/automata/dfa_minimizer.hpp" auto RepositoryConfig::RepositoryInfo::BaseContentDescription() const @@ -172,3 +173,12 @@ void RepositoryConfig::SetPrecomputedRoot(PrecomputedRoot const& root, } } } + +auto RepositoryConfig::ReadTreeFromGitCAS( + std::string const& hex_id) const noexcept -> std::optional<GitTree> { + if (git_cas_ == nullptr or storage_config_ == nullptr) { + return std::nullopt; + } + return GitTreeUtils::ReadValidGitCASTree( + *storage_config_, hex_id, git_cas_); +} |