]> granicus.if.org Git - libexpat/commitdiff
Validate "parser" and "s" parameters to XML_Parse
authorRhodri James <rhodri@kynesim.co.uk>
Tue, 25 Apr 2017 17:10:58 +0000 (18:10 +0100)
committerSebastian Pipping <sebastian@pipping.org>
Wed, 24 May 2017 18:49:40 +0000 (20:49 +0200)
expat/lib/xmlparse.c

index dfdb509bc9ee4bc7950becfaffa6ca4bc3d3b2ad..991a5275763442b2ab32389a3d6a71fb71e3a957 100644 (file)
@@ -1647,6 +1647,12 @@ XML_SetHashSalt(XML_Parser parser,
 enum XML_Status XMLCALL
 XML_Parse(XML_Parser parser, const char *s, int len, int isFinal)
 {
+  if (parser == NULL)
+    return XML_STATUS_ERROR;
+  if (s == NULL && len != 0) {
+    errorCode = XML_ERROR_INVALID_ARGUMENT;
+    return XML_STATUS_ERROR;
+  }
   switch (ps_parsing) {
   case XML_SUSPENDED:
     errorCode = XML_ERROR_SUSPENDED;