Blob Blame History Raw
diff -Naur miniupnpc-2.0.old/minixml.c miniupnpc-2.0/minixml.c
--- miniupnpc-2.0.old/minixml.c	2022-01-30 10:21:20.876729280 +0100
+++ miniupnpc-2.0/minixml.c	2022-01-30 10:22:12.790614016 +0100
@@ -161,7 +161,8 @@
 						if (p->xml >= p->xmlend)
 							return;
 					}
-					if(memcmp(p->xml, "<![CDATA[", 9) == 0)
+					/* CDATA are at least 9 + 3 characters long : <![CDATA[ ]]> */
+					if((p->xmlend >= (p->xml + (9 + 3))) && (memcmp(p->xml, "<![CDATA[", 9) == 0))
 					{
 						/* CDATA handling */
 						p->xml += 9;
diff -Naur miniupnpc-2.0.old/upnpreplyparse.c miniupnpc-2.0/upnpreplyparse.c
--- miniupnpc-2.0.old/upnpreplyparse.c	2022-01-30 10:21:20.877729297 +0100
+++ miniupnpc-2.0/upnpreplyparse.c	2022-01-30 10:25:48.381585002 +0100
@@ -104,9 +104,7 @@
                struct NameValueParserData * data)
 {
 	struct xmlparser parser;
-	data->l_head = NULL;
-	data->portListing = NULL;
-	data->portListingLength = 0;
+	memset(data, 0, sizeof(struct NameValueParserData));
 	/* init xmlparser object */
 	parser.xmlstart = buffer;
 	parser.xmlsize = bufsize;