you have to check len before accsessing "p".
diff --git a/tinyxml2.cpp b/tinyxml2.cpp
index 040a2a1..7e4ff40 100755
--- a/tinyxml2.cpp
+++ b/tinyxml2.cpp
@@ -1702,6 +1702,11 @@
 	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;