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;