you have to check len before accsessing "p".
@@ -1702,6 +1702,11 @@ XMLError XMLDocument::Parse( const char* p, size_t len )
const char* start = p;
Clear();
+ if ( len == 0 ) {
+ SetError( XML_ERROR_EMPTY_DOCUMENT, 0, 0 );
+ return _errorID;
+ }
+
if ( !p || !*p ) {
SetError( XML_ERROR_EMPTY_DOCUMENT, 0, 0 );
return _errorID;