[xml] possible bug and patch


I was looking at the source for "xmlXPathRegisterNs" and it's related functions to get an idea of how they worked when I noticed something odd in the memory management. "xmlXPathRegisterNs" passes "xmlFree" on to "xmlHashUpdateEntry" but it doesn't allocate anything. Also "xmlXPathRegisteredNsCleanup" doesn pass a deallocation routine to "xmlHashFree".

I believe the attached patch should fix it. I haven't really tested it apart from seeing if "make check" died.

Jason Adams

--- xpath.c.orig        Thu Aug 22 13:34:25 2002
+++ xpath.c     Thu Aug 22 13:49:12 2002
@@ -2826,5 +2826,5 @@
     if (ctxt->nsHash == NULL)
-    return(xmlHashUpdateEntry(ctxt->nsHash, prefix, (void *) ns_uri,
+    return(xmlHashUpdateEntry(ctxt->nsHash, prefix, (void *) xmlStrdup(ns_uri),
@@ -2876,5 +2876,5 @@
-    xmlHashFree(ctxt->nsHash, NULL);
+    xmlHashFree(ctxt->nsHash, (xmlHashDeallocator)xmlFree);
     ctxt->nsHash = NULL;

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]