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.hpp | |
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.hpp')
-rw-r--r-- | src/buildtool/common/repository_config.hpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/buildtool/common/repository_config.hpp b/src/buildtool/common/repository_config.hpp index 1a2f5be1..7fe66fa2 100644 --- a/src/buildtool/common/repository_config.hpp +++ b/src/buildtool/common/repository_config.hpp @@ -87,19 +87,18 @@ class RepositoryConfig { [[nodiscard]] auto ReadBlobFromGitCAS( std::string const& hex_id, + bool is_symlink, LogLevel log_failure = LogLevel::Warning) const noexcept -> std::optional<std::string> { return git_cas_ ? git_cas_->ReadObject(hex_id, /*is_hex_id=*/true, - /*validate=*/false, + /*as_valid_symlink=*/is_symlink, log_failure) : std::nullopt; } [[nodiscard]] auto ReadTreeFromGitCAS( - std::string const& hex_id) const noexcept -> std::optional<GitTree> { - return git_cas_ ? GitTree::Read(git_cas_, hex_id) : std::nullopt; - } + std::string const& hex_id) const noexcept -> std::optional<GitTree>; [[nodiscard]] auto WorkspaceRoot(std::string const& repo) const noexcept -> FileRoot const* { |