--- parser3/src/main/untaint.C 2003/03/24 16:43:27 1.115.2.12.2.13 +++ parser3/src/main/untaint.C 2003/03/25 12:10:09 1.115.2.12.2.14 @@ -5,7 +5,7 @@ Author: Alexandr Petrosian (http://paf.design.ru) */ -static const char* IDENT_UNTAINT_C="$Date: 2003/03/24 16:43:27 $"; +static const char* IDENT_UNTAINT_C="$Date: 2003/03/25 12:10:09 $"; #include "pa_string.h" @@ -301,22 +301,23 @@ StringBody String::cstr_to_string_body(L encode(need_file_encode, '_'); ); break; -#ifdef LATER case L_URI: // tainted, untaint language: uri { - const char *substr= - CORD_to_const_char_star( - CORD_substr(body, fragment_begin, fragment_length)); + size_t source_size; + const char *source_ptr= + body.mid(fragment_begin, source_size=fragment_length).cstr(); + // skip source [we use recoded version] + CORD_pos_advance(pos, source_size); const void *client_ptr; size_t client_size; if(charsets) Charset::transcode( - charsets->source(), substr, fragment_length, + charsets->source(), source_ptr, source_size, charsets->client(), client_ptr, client_size); else { - client_ptr=substr; - client_size=fragment_length; + client_ptr=source_ptr; + client_size=source_size; } char c; @@ -324,7 +325,6 @@ StringBody String::cstr_to_string_body(L encode(need_uri_encode, '%'); } break; -#endif case L_HTTP_HEADER: // tainted, untaint language: http-field-content-text escape(