14 #ifdef CVMFS_NAMESPACE_GUARD
15 namespace CVMFS_NAMESPACE_GUARD {
20 CharRange::CharRange(
const char range_begin,
const char range_end) {
21 range_begin_ = range_begin;
22 range_end_ = range_end;
26 CharRange::CharRange(
const char single_char) {
27 range_begin_ = range_end_ = single_char;
31 bool CharRange::InRange(
const char c)
const {
32 return (c >= range_begin_) && (c <= range_end_);
39 InputSanitizer::InputSanitizer(
const string &
whitelist) : max_length_(-1) {
40 InitValidRanges(whitelist);
45 : max_length_(max_length)
47 InitValidRanges(whitelist);
53 const unsigned length = whitelist.length();
54 unsigned pickup_pos = 0;
55 for (
unsigned i = 0; i < length; ++i) {
56 if ((i+1 >= length) || (whitelist[i+1] ==
' ') || (i == length-1)) {
57 const string range = whitelist.substr(pickup_pos, i-pickup_pos+1);
58 switch (range.length()) {
76 std::string::const_iterator begin,
77 std::string::const_iterator end,
78 std::string *filtered_output)
const {
81 for (; begin != end; ++begin) {
87 filtered_output->push_back(*begin);
108 string filtered_output;
110 return filtered_output;
121 std::string::const_iterator begin,
122 std::string::const_iterator end,
123 std::string *filtered_output)
const {
124 if (std::distance(begin, end) == 0) {
130 filtered_output->push_back(
'-');
139 std::string::const_iterator begin,
140 std::string::const_iterator end,
141 std::string *filtered_output)
const {
142 if (std::distance(begin, end) == 0) {
151 #ifdef CVMFS_NAMESPACE_GUARD
virtual bool Sanitize(std::string::const_iterator begin, std::string::const_iterator end, std::string *filtered_output) const
assert((mem||(size==0))&&"Out Of Memory")
const whitelist::Whitelist * whitelist() const
virtual bool Sanitize(std::string::const_iterator begin, std::string::const_iterator end, std::string *filtered_output) const