1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2025-03-19 14:50:07 +03:00

Fix memory leaks in xmlXPathParseNameComplex error paths

Found by OSS-Fuzz.
This commit is contained in:
Nick Wellnhofer 2019-04-16 13:37:47 +02:00
parent fa3166c227
commit 93a1d22380

10
xpath.c
View File

@ -10004,15 +10004,19 @@ xmlXPathParseNameComplex(xmlXPathParserContextPtr ctxt, int qualified) {
(IS_COMBINING(c)) ||
(IS_EXTENDER(c))) {
if (len + 10 > max) {
xmlChar *tmp;
if (max > XML_MAX_NAME_LENGTH) {
xmlFree(buffer);
XP_ERRORNULL(XPATH_EXPR_ERROR);
}
max *= 2;
buffer = (xmlChar *) xmlRealloc(buffer,
max * sizeof(xmlChar));
if (buffer == NULL) {
tmp = (xmlChar *) xmlRealloc(buffer,
max * sizeof(xmlChar));
if (tmp == NULL) {
xmlFree(buffer);
XP_ERRORNULL(XPATH_MEMORY_ERROR);
}
buffer = tmp;
}
COPY_BUF(l,buffer,len,c);
NEXTL(l);