diff options
author | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2025-05-16 17:30:39 +0200 |
---|---|---|
committer | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2025-06-04 14:34:44 +0200 |
commit | 3a4dc9753561c70af7a939e5f3d729d8accc52f9 (patch) | |
tree | 5e17d77df5af5b1bb7e0bc612af3278b2faf6f88 /src/buildtool/execution_api/local/local_cas_reader.hpp | |
parent | d5177881b4df769afcf18ca803f6c2f153285207 (diff) | |
download | justbuild-3a4dc9753561c70af7a939e5f3d729d8accc52f9.tar.gz |
LocalCasReader: Add validity check for bazel directories
This will check if directories contain upwards symlinks.
Diffstat (limited to 'src/buildtool/execution_api/local/local_cas_reader.hpp')
-rw-r--r-- | src/buildtool/execution_api/local/local_cas_reader.hpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/buildtool/execution_api/local/local_cas_reader.hpp b/src/buildtool/execution_api/local/local_cas_reader.hpp index 090aa9d1..3ac47f64 100644 --- a/src/buildtool/execution_api/local/local_cas_reader.hpp +++ b/src/buildtool/execution_api/local/local_cas_reader.hpp @@ -26,6 +26,7 @@ #include "src/buildtool/common/bazel_types.hpp" #include "src/buildtool/file_system/git_repo.hpp" #include "src/buildtool/storage/local_cas.hpp" +#include "src/utils/cpp/expected.hpp" class LocalCasReader final { public: @@ -58,6 +59,13 @@ class LocalCasReader final { [[nodiscard]] auto IsNativeProtocol() const noexcept -> bool; + /// \brief Check recursively if Directory contains any invalid entries + /// (i.e., upwards symlinks). + /// \returns True if Directory is ok, false if at least on upwards symlink + /// has been found, error message on other failures. + [[nodiscard]] auto IsDirectoryValid(ArtifactDigest const& digest) + const noexcept -> expected<bool, std::string>; + private: LocalCAS<true> const& cas_; |