--- parser3/src/classes/image.C 2009/04/10 11:31:06 1.120 +++ parser3/src/classes/image.C 2009/06/14 00:33:36 1.124 @@ -5,7 +5,7 @@ Author: Alexandr Petrosian (http://paf.design.ru) */ -static const char * const IDENT_IMAGE_C="$Date: 2009/04/10 11:31:06 $"; +static const char * const IDENT_IMAGE_C="$Date: 2009/06/14 00:33:36 $"; /* jpegsize: gets the width and height (in pixels) of a jpeg file @@ -33,7 +33,7 @@ static const char * const IDENT_IMAGE_C= class MImage: public Methoded { public: // VStateless_class - Value* create_new_value(Pool&, HashStringValue&) { return new VImage(); } + Value* create_new_value(Pool&, HashStringValue*) { return new VImage(); } public: MImage(); @@ -484,9 +484,7 @@ static Value* parse_IFD_entry_formatted_ catch(...) { /*ignore bad date times*/ } } - if(const char* premature_zero_pos=(const char* )memchr(cstr, 0, length)) - length=premature_zero_pos-cstr; - return new VString(*new String(cstr, length, true/*tainted*/)); + return new VString(*new String(cstr, String::L_TAINTED)); } if(components_count==1) @@ -535,7 +533,7 @@ static Value* parse_IFD_entry_value( // You can get the total data byte length by multiplies // a 'bytes/components' value (see above chart) by number of components stored 'NNNNNNNN' area uint components_count=endian_to_uint(is_big, entry.components_count); - size_t value_size=component_size*components_count; + uint value_size=component_size*components_count; // If its size is over 4bytes, 'DDDDDDDD' contains the offset to data stored address Value* result;