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:
parent
fa3166c227
commit
93a1d22380
10
xpath.c
10
xpath.c
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user