1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2024-12-24 21:33:51 +03:00

xinclude: Don't use xmlHasNsProp

This function can malloc and doesn't report failures.

Another design mistake is that xmlUnsetNsProp requires an xmlNs
struct.
This commit is contained in:
Nick Wellnhofer 2024-03-30 17:17:21 +01:00
parent fe3cbf897e
commit 365976dbe0

View File

@ -612,7 +612,7 @@ xmlXIncludeBaseFixup(xmlXIncludeCtxtPtr ctxt, xmlNodePtr cur, xmlNodePtr copy,
const xmlChar *targetBase) {
xmlChar *base = NULL;
xmlChar *relBase = NULL;
xmlAttrPtr attr;
xmlNs ns;
int res;
if (xmlNodeGetBaseSafe(cur->doc, cur, &base) < 0)
@ -645,12 +645,9 @@ xmlXIncludeBaseFixup(xmlXIncludeCtxtPtr ctxt, xmlNodePtr cur, xmlNodePtr copy,
/*
* Delete existing xml:base if bases are equal
*/
attr = xmlHasNsProp(copy, BAD_CAST "base",
XML_XML_NAMESPACE);
if (attr != NULL) {
xmlUnlinkNode((xmlNodePtr) attr);
xmlFreeProp(attr);
}
memset(&ns, 0, sizeof(ns));
ns.href = XML_XML_NAMESPACE;
xmlUnsetNsProp(copy, &ns, BAD_CAST "base");
done:
xmlFree(base);