Hello!
The following sample program (uses xmlParseMemory() to parse an XML
document) causes many errors in valgrind to appear. I used the latest libxml2
version (2.6.7) compiled from source on a Debian 3.0 "Woody" system (kernel
2.4.23, glibc 2.2.5, gcc 2.95.4). The same example works without any problems
for other XML documents. Could anybody please tell me whether this is a bug
or not? (I'm kind of puzzled. The document is output correctly by
xmlDocDump(), though. But the valgrind errors seem somewhat serious to me.)
The output from valgrind is attached in gzip format.
Thanks in advance for any info on this issue!
Greetings,
Holger
--------------------------------------------------------------------
#include <stdio.h>
#include <libxml/tree.h>
int main( void )
{
xmlDocPtr curDoc = NULL;
const char* xml_cmds[] = {
"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><ino:response
xmlns:ino=\"http://namespaces.softwareag.com/tamino/response2\" xmlns:xql=\"http://metalab.unc.edu/xql/\"
ino:sessionid=\"556\" ino:sessionkey=\"1590469677\"><xql:query>/bsk:DocPart[
docId='20040308152601345236' and @docPartNo=1]</xql:query><ino:message
ino:returnvalue=\"0\"><ino:messageline>XQL Request
processing</ino:messageline></ino:message><xql:result><bsk:DocPart docId=\"20040308152601345236\"
docPartNo=\"1\" ino:id=\"15290\" xmlns:bsk=\"http://www.heitec.net/sara4/tamino/basket\"><bsk:File
name=\"4898WPZEO2M65\" size=\"75195\"></bsk:File></bsk:DocPart></xql:result><ino:message
ino:returnvalue=\"0\"><ino:messageline>XQL Request processed</ino:messageline></ino:message></ino:response>",
NULL
};
/* This is a real XML document since it contains an XML declaration */
curDoc = xmlParseMemory( xml_cmds[0], strlen( xml_cmds[0] ) );
if ( curDoc ) {
printf( "curDoc:\n" );
xmlDocDump( stdout, curDoc );
}
if ( curDoc ) xmlFreeDoc( curDoc );
return EXIT_SUCCESS;
}
Attachment:
valgrind.out.gz
Description: Binary data