I believe I've found a bug, or at least annoying issue in libxml2.

So I've got a library that is using libxml2 heavily. I had to turn on memory
tracking in the so I can inspect the total memory allocated by libxml2.

xmlMemSetup(xmlMemFree, xmlMemMalloc, xmlMemRealloc, xmlMemoryStrdup);

  xmlInitMemory();

// http://github.com/polotek/libxmljs/blob/master/src/libxmljs.cc#L160-161

But now I get the Memory tag errors that occur when xml memory isn't
allocated or freed properly.  I've studied this issue a lot because I
thought it might be a problem of mine.  Here's an example thread below (not
mine, just helped me understand the problem).

http://mail.gnome.org/archives/xml/2010-April/msg00035.html

I understand things now and I've been debugging to track down where this
happens.  Despite what I might be doing in my library, I always get several
memory errors.  I've traced the problem to the
function xmlCleanupCharEncodingHandlers that gets called in
xmlCleanupParser.

The function calls xmlFree on all of the names of the handlers.  But the
names were not created with xmlMalloc.  They are passed in as literal
strings.  See ecoding.c around line 1351.

I know this issue doesn't cause a real problem in practice.  But I have to
have the memory tracking on in the release version of my lib.  So everyone
who uses it sees these and it causes them to think it's broken.  It would be
awesome if this was fixed in a future release of libxml2.  But what I really
need is a way to prevent it happening in previous versions whenever memory
tracking is on.

I hope this makes sense.  Any help is appreciated.

:Marco

-- 
Marco Rogers
[email protected]

Life is ten percent what happens to you and ninety percent how you respond
to it.
- Lou Holtz
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to