From 9880c336be9670721f32b9d5a7d5d7ccd68bfdfb Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Thu, 13 Jul 2023 13:31:31 +0200 Subject: [PATCH] Avoid string allocation in dom_get_dom1_attribute() for as long as possible --- ext/dom/element.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ext/dom/element.c b/ext/dom/element.c index 12c3a2a449c..366341ede9f 100644 --- a/ext/dom/element.c +++ b/ext/dom/element.c @@ -159,8 +159,7 @@ static xmlNodePtr dom_get_dom1_attribute(xmlNodePtr elem, xmlChar *name) /* {{{ nqname = xmlSplitQName3(name, &len); if (nqname != NULL) { xmlNsPtr ns; - xmlChar *prefix = xmlStrndup(name, len); - if (prefix && xmlStrEqual(prefix, (xmlChar *)"xmlns")) { + if (strncmp((const char *) name, "xmlns:", len + 1) == 0) { ns = elem->nsDef; while (ns) { if (xmlStrEqual(ns->prefix, nqname)) { @@ -168,9 +167,9 @@ static xmlNodePtr dom_get_dom1_attribute(xmlNodePtr elem, xmlChar *name) /* {{{ } ns = ns->next; } - xmlFree(prefix); return (xmlNodePtr)ns; } + xmlChar *prefix = xmlStrndup(name, len); ns = xmlSearchNs(elem->doc, elem, prefix); if (prefix != NULL) { xmlFree(prefix);