From fa8c876031e4bc96c21f7f4d2f9161b1e5f64da7 Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Mon, 24 Feb 2025 13:37:54 +0100 Subject: Promote IsValidFileName to a public function of the path utils ... instead of being private to parse_archive. --- src/utils/cpp/path.hpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/utils/cpp/path.hpp') diff --git a/src/utils/cpp/path.hpp b/src/utils/cpp/path.hpp index 26d25e50..ba3d125b 100644 --- a/src/utils/cpp/path.hpp +++ b/src/utils/cpp/path.hpp @@ -16,6 +16,7 @@ #define INCLUDED_SRC_UTILS_CPP_PATH_HPP #include +#include [[nodiscard]] static inline auto ToNormalPath( std::filesystem::path const& p) noexcept -> std::filesystem::path { @@ -58,4 +59,15 @@ return PathIsNonUpwards(applied_to.parent_path() / path); } +/// \brief Predicate if a given string is a valid filename. +[[nodiscard]] static inline auto IsValidFileName(const std::string& s) -> bool { + if (s.find_first_of("/\0") != std::string::npos) { + return false; + } + if (s.empty() or s == "." or s == "..") { + return false; + } + return true; +} + #endif // INCLUDED_SRC_UTILS_CPP_PATH_HPP -- cgit v1.2.3