From 3a4dc9753561c70af7a939e5f3d729d8accc52f9 Mon Sep 17 00:00:00 2001 From: Paul Cristian Sarbu Date: Fri, 16 May 2025 17:30:39 +0200 Subject: LocalCasReader: Add validity check for bazel directories This will check if directories contain upwards symlinks. --- src/buildtool/execution_api/local/local_cas_reader.hpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/buildtool/execution_api/local/local_cas_reader.hpp') 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; + private: LocalCAS const& cas_; -- cgit v1.2.3