Re: [xml] error in moving nodes between documents: heap corruption detected
- From: Tomas Sieger <tomas sieger systinet com>
- To: veillard redhat com
- Cc: xml gnome org, xmlsec aleksey com
- Subject: Re: [xml] error in moving nodes between documents: heap corruption detected
- Date: Tue, 30 Nov 2004 13:42:40 +0100
Thanks for the quick answer!
Daniel Veillard wrote:
On Tue, Nov 30, 2004 at 12:10:33PM +0100, Tomas Sieger wrote:
The problem appears in libxml2-2.6.15 and newer. libxml2-2.6.14
does not cause the problem. I've discovered that this commit:
http://cvs.gnome.org/viewcvs/libxml2/parser.c?r1=1.391&r2=1.392
This enforces than nodes from a document always use names from
the document dictionnary. If you want to avoid that, pass the
XML_PARSE_NODICT option to xmlRead... parsing functions.
Is it also possible to specify such a flag when parsing using
ctx=xmlCreatePushParserCtxt(...);
xmlParseChunk(...);
doc=ctx->myDoc;
xmlFreeParserCtxt(ctx);
?
Or, alternatively, can one "unlink" ALL references into the original
document when moving a node into another document?
It is not a bug, it is a property of the documents. You can disable it
but you will loose on performances and memory consumption.
But, unfortunately, IMHO, the parser API semantics has changed.
It implies that xmlsec (up to version 1.2.6) does not work with libxml2
versions 2.6.15 and higher (I assume that xmlsec code:
xmlSecParseMemoryExt and xmlSecReplaceNodeBuffer is valid in respect to
the libxml2 reader/parser API).
Tomas
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]