Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
safe_path.hpp File Reference

Path admission. More...

#include <pulp/authoring_capsule/limits.hpp>
#include <pulp/authoring_capsule/status.hpp>
#include <pulp/runtime/result.hpp>
#include <string>
#include <string_view>
#include <vector>

Go to the source code of this file.

Namespaces

namespace  pulp
namespace  pulp::authoring_capsule

Functions

runtime::Result< std::string, CapsuleError > pulp::authoring_capsule::admit_member_path (std::string_view raw, const CapsuleLimits &limits=kCapsuleLimitsV1)
 Verify a member path and return it unchanged.
std::string pulp::authoring_capsule::collision_key (std::string_view normalized_path)
 Fold a normalized path to the key used for collision detection: ASCII case-folded, NFC, with confusable characters mapped to a representative.
runtime::Result< void, CapsuleError > pulp::authoring_capsule::check_collisions (const std::vector< std::string > &normalized)
 Detect a collision across a member set. Returns the first offending pair.

Detailed Description

Path admission.

A capsule path is data from an untrusted machine, so it is normalized and checked before it is ever joined to a real directory.