diff options
Diffstat (limited to '3rdParty/LibMiniUPnPc/src/miniupnpc/upnpreplyparse.c')
-rw-r--r-- | 3rdParty/LibMiniUPnPc/src/miniupnpc/upnpreplyparse.c | 54 |
1 files changed, 34 insertions, 20 deletions
diff --git a/3rdParty/LibMiniUPnPc/src/miniupnpc/upnpreplyparse.c b/3rdParty/LibMiniUPnPc/src/miniupnpc/upnpreplyparse.c index dafa263..5de5796 100644 --- a/3rdParty/LibMiniUPnPc/src/miniupnpc/upnpreplyparse.c +++ b/3rdParty/LibMiniUPnPc/src/miniupnpc/upnpreplyparse.c @@ -1,5 +1,5 @@ -/* $Id: upnpreplyparse.c,v 1.15 2013/06/06 21:36:40 nanard Exp $ */ +/* $Id: upnpreplyparse.c,v 1.19 2015/07/15 10:29:11 nanard Exp $ */ /* MiniUPnP project * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ - * (c) 2006-2013 Thomas Bernard + * (c) 2006-2015 Thomas Bernard * This software is subject to the conditions detailed @@ -42,2 +42,11 @@ NameValueParserEndElt(void * d, const char * name, int l) nv = malloc(sizeof(struct NameValue)); + if(nv == NULL) + { + /* malloc error */ +#ifdef DEBUG + fprintf(stderr, "%s: error allocating memory", + "NameValueParserEndElt"); +#endif /* DEBUG */ + return; + } if(l>=(int)sizeof(nv->value)) @@ -55,3 +64,4 @@ NameValueParserEndElt(void * d, const char * name, int l) } - LIST_INSERT_HEAD( &(data->head), nv, entries); + nv->l_next = data->l_head; /* insert in list */ + data->l_head = nv; } @@ -73,2 +83,6 @@ NameValueParserGetData(void * d, const char * datas, int l) /* malloc error */ +#ifdef DEBUG + fprintf(stderr, "%s: error allocating memory", + "NameValueParserGetData"); +#endif /* DEBUG */ return; @@ -91,15 +105,15 @@ ParseNameValue(const char * buffer, int bufsize, { - struct xmlparser parser; - LIST_INIT(&(data->head)); + struct xmlparser parser; + data->l_head = NULL; data->portListing = NULL; data->portListingLength = 0; - /* init xmlparser object */ - parser.xmlstart = buffer; - parser.xmlsize = bufsize; - parser.data = data; - parser.starteltfunc = NameValueParserStartElt; - parser.endeltfunc = NameValueParserEndElt; - parser.datafunc = NameValueParserGetData; + /* init xmlparser object */ + parser.xmlstart = buffer; + parser.xmlsize = bufsize; + parser.data = data; + parser.starteltfunc = NameValueParserStartElt; + parser.endeltfunc = NameValueParserEndElt; + parser.datafunc = NameValueParserGetData; parser.attfunc = 0; - parsexml(&parser); + parsexml(&parser); } @@ -116,5 +130,5 @@ ClearNameValueList(struct NameValueParserData * pdata) } - while((nv = pdata->head.lh_first) != NULL) + while((nv = pdata->l_head) != NULL) { - LIST_REMOVE(nv, entries); + pdata->l_head = nv->l_next; free(nv); @@ -129,5 +143,5 @@ GetValueFromNameValueList(struct NameValueParserData * pdata, char * p = NULL; - for(nv = pdata->head.lh_first; + for(nv = pdata->l_head; (nv != NULL) && (p == NULL); - nv = nv->entries.le_next) + nv = nv->l_next) { @@ -173,5 +187,5 @@ DisplayNameValueList(char * buffer, int bufsize) ParseNameValue(buffer, bufsize, &pdata); - for(nv = pdata.head.lh_first; + for(nv = pdata.l_head; nv != NULL; - nv = nv->entries.le_next) + nv = nv->l_next) { @@ -181,3 +195,3 @@ DisplayNameValueList(char * buffer, int bufsize) } -#endif +#endif /* DEBUG */ |