Diff for /parser3/src/main/untaint.C between versions 1.134 and 1.134.6.2.2.1

version 1.134, 2005/06/28 14:43:46 version 1.134.6.2.2.1, 2006/03/01 18:44:55
Line 1 Line 1
 /** @file  /** @file
         Parser: String class part: untaint mechanizm.          Parser: String class part: untaint mechanizm.
   
         Copyright(c) 2001-2004 ArtLebedev Group (http://www.artlebedev.com)          Copyright(c) 2001-2006 ArtLebedev Group (http://www.artlebedev.com)
         Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)          Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
 */  */
   
Line 92  inline bool need_http_header_encode(unsi Line 92  inline bool need_http_header_encode(unsi
   
         return need_uri_encode(c);          return need_uri_encode(c);
 }  }
   inline bool need_regex_escape(unsigned char c){
           return strchr("\\^$.[]|()?*+{}", c)!=0;
   }
   
 // String  // String
   
Line 371  int cstr_to_string_body_block(char alang Line 374  int cstr_to_string_body_block(char alang
                         bool email=false;                          bool email=false;
                         uchar c;                          uchar c;
                         for(const char* src=mail_ptr; (c=(uchar)*src++); ) {                          for(const char* src=mail_ptr; (c=(uchar)*src++); ) {
                                   if(c=='\r' || c=='\n')
                                           c=' ';
                                 if(to_quoted_printable && (c==',' || c == '"' || addr_spec_soon(src-1/*position to 'c'*/))) {                                  if(to_quoted_printable && (c==',' || c == '"' || addr_spec_soon(src-1/*position to 'c'*/))) {
                                         email=c=='<';                                          email=c=='<';
                                         to_string("?=");                                          to_string("?=");
Line 463  int cstr_to_string_body_block(char alang Line 468  int cstr_to_string_body_block(char alang
                         default: _default; break;                          default: _default; break;
                 });                  });
                 break;                  break;
           case String::L_REGEX:
                   // tainted, untaint language: regex
                   escape(
                           if(need_regex_escape(c))
                                   to_char('\\')
                           _default;
                   );
                   break;
         default:          default:
                 SAPI::abort("unknown untaint language #%d",                   SAPI::abort("unknown untaint language #%d", 
                         static_cast<int>(to_lang)); // should never                          static_cast<int>(to_lang)); // should never

Removed from v.1.134  
changed lines
  Added in v.1.134.6.2.2.1


E-mail: