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) {
46 InitValidRanges(whitelist);
52 const unsigned length = whitelist.length();
53 unsigned pickup_pos = 0;
54 for (
unsigned i = 0; i < length; ++i) {
55 if ((i + 1 >= length) || (whitelist[i + 1] ==
' ') || (i == length - 1)) {
56 const string range = whitelist.substr(pickup_pos, i - pickup_pos + 1);
57 switch (range.length()) {
75 std::string::const_iterator end,
76 std::string *filtered_output)
const {
79 for (; begin != end; ++begin) {
85 filtered_output->push_back(*begin);
106 string filtered_output;
108 return filtered_output;
119 std::string::const_iterator end,
120 std::string *filtered_output)
const {
121 if (std::distance(begin, end) == 0) {
127 filtered_output->push_back(
'-');
136 std::string::const_iterator end,
137 std::string *filtered_output)
const {
138 if (std::distance(begin, end) == 0) {
147 #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