After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 556780 - xmllint Segfaults on DTD
xmllint Segfaults on DTD
Status: RESOLVED OBSOLETE
Product: libxml2
Classification: Platform
Component: general
2.7.1
Other All
: Normal normal
: ---
Assigned To: Daniel Veillard
libxml QA maintainers
Depends on:
Blocks:
 
 
Reported: 2008-10-17 20:10 UTC by Andre Nicholson
Modified: 2021-07-05 13:24 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Andre Nicholson 2008-10-17 20:10:41 UTC
Please describe the problem:
Running xmllint with no arguments yields a segmentation fault on XML files which contain a DTD. I've tried several different XML files including ones in the source tarball but xmllint segfaults on every one.

Steps to reproduce:
1. Create a file containing the following XML data, pulled from W3's XML specification:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE greeting [
  <!ELEMENT greeting (#PCDATA)>
]>
<greeting>Hello, world!</greeting>

2. Execute 'xmllint <XML file>'


Actual results:
"Segmentation Fault" is displayed.

Expected results:
Expect to see the contents of the XML file.

Does this happen every time?
Yes

Other information:
Result of 'uname -a':
UnixWare dev6 5 7.1.4 i386 x86at SCO UNIX_SVR5

Result of 'xmllint -version':
xmllint: using libxml version 20702
   compiled with: Tree Output Push Reader Patterns Writer SAXv1 FTP HTTP DTDValid HTML Legacy C14N Catalog XPath XPointer XInclude Iconv ISO8859X Unicode Regexps Automata Expr Schemas Schematron Modules Debug Zlib
Comment 1 Daniel Veillard 2008-10-22 15:35:37 UTC
That completely specific to the build on your platform, works fine

wei:~/XML -> cat tst.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE greeting [
  <!ELEMENT greeting (#PCDATA)>
]>
<greeting>Hello, world!</greeting>
wei:~/XML -> xmllint tst.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE greeting [
<!ELEMENT greeting (#PCDATA)>
]>
<greeting>Hello, world!</greeting>
wei:~/XML -> valgrind xmllint tst.xml
==13906== Memcheck, a memory error detector.
==13906== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al.
==13906== Using LibVEX rev 1804, a library for dynamic binary translation.
==13906== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.
==13906== Using valgrind-3.3.0, a dynamic binary instrumentation framework.
==13906== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.
==13906== For more details, rerun with: -v
==13906== 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE greeting [
<!ELEMENT greeting (#PCDATA)>
]>
<greeting>Hello, world!</greeting>
==13906== 
==13906== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 4 from 1)
==13906== malloc/free: in use at exit: 0 bytes in 0 blocks.
==13906== malloc/free: 79 allocs, 79 frees, 66,745 bytes allocated.
==13906== For counts of detected errors, rerun with: -v
==13906== All heap blocks were freed -- no leaks are possible.
wei:~/XML -> 

  I don't see any other solution than take a debugger and see where
and how it fails on your platform, it's really tied to your build.

Daniel
Comment 2 Andre Nicholson 2008-10-22 17:41:01 UTC
valgrind will not compile on sysv5UnixWare7.1.4 but I can run debug on xmllint.

$ debug /usr/local/bin/xmllint test.xml
New program xmllint (process p1) created
HALTED p1 [main in xmllint.c]
2943:       int version = 0;
debug> step -c 0
STEPPED p1 [main in xmllint.c]
2946:       if (argc <= 1) {
STEPPED p1 [main in xmllint.c]
2950:       LIBXML_TEST_VERSION
STEPPED p1 [xmlCheckVersion in parserInternals.c]
75:         if ((myversion / 10000) != (version / 10000)) {
STEPPED p1 [xmlCheckVersion in parserInternals.c]
83:         if ((myversion / 100) < (version / 100)) {
STEPPED p1 [xmlCheckVersion in parserInternals.c]
87:         }
STEPPED p1 [main in xmllint.c]
2951:       for (i = 1; i < argc ; i++) {
STEPPED p1 [main in xmllint.c]
2952:           if (!strcmp(argv[i], "-"))
STEPPED p1 [main in xmllint.c]
2955:           if (argv[i][0] != '-')
STEPPED p1 [main in xmllint.c]
3265:       if (nocatalogs == 0) {
STEPPED p1 [main in xmllint.c]
3266:           if (catalogs) {
STEPPED p1 [main in xmllint.c]
3280:       if (sax1)
STEPPED p1 [main in xmllint.c]
3283:           xmlSAXDefaultVersion(2);
STEPPED p1 [xmlSAXDefaultVersion in SAX2.c]
2694:       int ret = xmlSAX2DefaultVersionValue;
STEPPED p1 [xmlSAXDefaultVersion in SAX2.c]
2696:       if ((version != 1) && (version != 2))
STEPPED p1 [xmlSAXDefaultVersion in SAX2.c]
2698:       xmlSAX2DefaultVersionValue = version;
STEPPED p1 [xmlSAXDefaultVersion in SAX2.c]
2699:       return(ret);
STEPPED p1 [main in xmllint.c]
3286:       if (chkregister) {
STEPPED p1 [main in xmllint.c]
3291:       indent = getenv("XMLLINT_INDENT");
STEPPED p1 [main in xmllint.c]
3292:       if(indent != NULL) {
STEPPED p1 [main in xmllint.c]
3297:       defaultEntityLoader = xmlGetExternalEntityLoader();
STEPPED p1 [xmlGetExternalEntityLoader in xmlIO.c]
3861:       return(xmlCurrentExternalEntityLoader);
STEPPED p1 [main in xmllint.c]
3298:       xmlSetExternalEntityLoader(xmllintExternalEntityLoader);
STEPPED p1 [xmlSetExternalEntityLoader in xmlIO.c]
3849:       xmlCurrentExternalEntityLoader = f;
STEPPED p1 [main in xmllint.c]
3300:       xmlLineNumbersDefault(1);
STEPPED p1 [xmlLineNumbersDefault in parserInternals.c]
2013:       int old = xmlLineNumbersDefaultValue;
STEPPED p1 [xmlLineNumbersDefault in parserInternals.c]
2012:   xmlLineNumbersDefault(int val) {
STEPPED p1 [xmlLineNumbersDefault in parserInternals.c]
2013:       int old = xmlLineNumbersDefaultValue;
STEPPED p1 [xmlLineNumbersDefault in parserInternals.c]
2015:       xmlLineNumbersDefaultValue = val;
STEPPED p1 [xmlLineNumbersDefault in parserInternals.c]
2016:       return(old);
STEPPED p1 [main in xmllint.c]
3301:       if (loaddtd != 0)
STEPPED p1 [main in xmllint.c]
3303:       if (dtdattrs)
STEPPED p1 [main in xmllint.c]
3305:       if (noent != 0) xmlSubstituteEntitiesDefault(1);
STEPPED p1 [main in xmllint.c]
3307:       if (valid != 0) xmlDoValidityCheckingDefaultValue = 1;
STEPPED p1 [main in xmllint.c]
3309:       if ((htmlout) && (!nowrap)) {
STEPPED p1 [main in xmllint.c]
3323:       if ((schematron != NULL) && (sax == 0)
STEPPED p1 [main in xmllint.c]
3357:       if ((relaxng != NULL) && (sax == 0)
STEPPED p1 [main in xmllint.c]
3415:       if ((pattern != NULL)
STEPPED p1 [main in xmllint.c]
3429:       for (i = 1; i < argc ; i++) {
STEPPED p1 [main in xmllint.c]
3430:           if ((!strcmp(argv[i], "-encode")) ||
STEPPED p1 [main in xmllint.c]
3434:           } else if ((!strcmp(argv[i], "-o")) ||
STEPPED p1 [main in xmllint.c]
3441:           if ((!strcmp(argv[i], "-dtdvalid")) ||
STEPPED p1 [main in xmllint.c]
3446:           if ((!strcmp(argv[i], "-path")) ||
STEPPED p1 [main in xmllint.c]
3451:           if ((!strcmp(argv[i], "-dtdvalidfpi")) ||
STEPPED p1 [main in xmllint.c]
3457:           if ((!strcmp(argv[i], "-relaxng")) ||
STEPPED p1 [main in xmllint.c]
3462:           if ((!strcmp(argv[i], "-maxmem")) ||
STEPPED p1 [main in xmllint.c]
3467:           if ((!strcmp(argv[i], "-schema")) ||
STEPPED p1 [main in xmllint.c]
3472:           if ((!strcmp(argv[i], "-schematron")) ||
STEPPED p1 [main in xmllint.c]
3478:           if ((!strcmp(argv[i], "-pattern")) ||
STEPPED p1 [main in xmllint.c]
3484:           if ((timing) && (repeat))
STEPPED p1 [main in xmllint.c]
3487:           if ((argv[i][0] != '-') || (strcmp(argv[i], "-") == 0)) {
STEPPED p1 [main in xmllint.c]
3488:               if (repeat) {
STEPPED p1 [main in xmllint.c]
3511:                   nbregister = 0;
STEPPED p1 [main in xmllint.c]
3514:                   if (stream != 0)
STEPPED p1 [main in xmllint.c]
3518:                   if (sax) {
STEPPED p1 [main in xmllint.c]
3521:                       parseAndPrintFile(argv[i], NULL);
STEPPED p1 [parseAndPrintFile in xmllint.c]
2049:       xmlDocPtr doc = NULL;
STEPPED p1 [parseAndPrintFile in xmllint.c]
2054:       if ((timing) && (!repeat))
STEPPED p1 [parseAndPrintFile in xmllint.c]
2059:       if (filename == NULL) {
STEPPED p1 [parseAndPrintFile in xmllint.c]
2072:       else if ((html) && (push)) {
STEPPED p1 [parseAndPrintFile in xmllint.c]
2131:           if (push) {
STEPPED p1 [parseAndPrintFile in xmllint.c]
2171:           if (testIO) {
STEPPED p1 [parseAndPrintFile in xmllint.c]
2258:               if (rectxt != NULL)
STEPPED p1 [parseAndPrintFile in xmllint.c]
2262:                   if (sax1)
STEPPED p1 [parseAndPrintFile in xmllint.c]
2266:                   doc = xmlReadFile(filename, NULL, options);
STEPPED p1 [xmlReadFile in parser.c]
14314:      ctxt = xmlCreateURLParserCtxt(filename, options);
STEPPED p1 [xmlCreateURLParserCtxt in parser.c]
13167:      ctxt = xmlNewParserCtxt();
STEPPED p1 [xmlNewParserCtxt in parserInternals.c]
1777:       if (ctxt == NULL) {
STEPPED p1 [xmlNewParserCtxt in parserInternals.c]
1781:       memset(ctxt, 0, sizeof(xmlParserCtxt));
STEPPED p1 [xmlNewParserCtxt in parserInternals.c]
1782:       if (xmlInitParserCtxt(ctxt) < 0) {
STEPPED p1 [xmlInitParserCtxt in parserInternals.c]
1522:       if(ctxt==NULL) {
STEPPED p1 [xmlInitParserCtxt in parserInternals.c]
1527:       xmlDefaultSAXHandlerInit();
STEPPED p1 [xmlDefaultSAXHandlerInit in SAX2.c]
2789:       xmlSAXVersion((xmlSAXHandlerPtr) &xmlDefaultSAXHandler, 1);
STEPPED p1 [xmlSAXVersion in SAX2.c]
2715:       if (hdlr == NULL) return(-1);
STEPPED p1 [xmlSAXVersion in SAX2.c]
2716:       if (version == 2) {
STEPPED p1 [xmlSAXVersion in SAX2.c]
2725:           hdlr->startElement = xmlSAX2StartElement;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2726:           hdlr->endElement = xmlSAX2EndElement;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2727:           hdlr->initialized = 1;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2731:       hdlr->internalSubset = xmlSAX2InternalSubset;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2732:       hdlr->externalSubset = xmlSAX2ExternalSubset;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2733:       hdlr->isStandalone = xmlSAX2IsStandalone;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2734:       hdlr->hasInternalSubset = xmlSAX2HasInternalSubset;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2735:       hdlr->hasExternalSubset = xmlSAX2HasExternalSubset;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2736:       hdlr->resolveEntity = xmlSAX2ResolveEntity;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2737:       hdlr->getEntity = xmlSAX2GetEntity;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2738:       hdlr->getParameterEntity = xmlSAX2GetParameterEntity;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2739:       hdlr->entityDecl = xmlSAX2EntityDecl;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2740:       hdlr->attributeDecl = xmlSAX2AttributeDecl;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2741:       hdlr->elementDecl = xmlSAX2ElementDecl;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2742:       hdlr->notationDecl = xmlSAX2NotationDecl;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2743:       hdlr->unparsedEntityDecl = xmlSAX2UnparsedEntityDecl;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2744:       hdlr->setDocumentLocator = xmlSAX2SetDocumentLocator;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2745:       hdlr->startDocument = xmlSAX2StartDocument;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2746:       hdlr->endDocument = xmlSAX2EndDocument;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2747:       hdlr->reference = xmlSAX2Reference;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2748:       hdlr->characters = xmlSAX2Characters;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2749:       hdlr->cdataBlock = xmlSAX2CDataBlock;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2751:       hdlr->processingInstruction = xmlSAX2ProcessingInstruction;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2752:       hdlr->comment = xmlSAX2Comment;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2753:       hdlr->warning = xmlParserWarning;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2754:       hdlr->error = xmlParserError;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2748:       hdlr->characters = xmlSAX2Characters;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2750:       hdlr->ignorableWhitespace = xmlSAX2Characters;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2754:       hdlr->error = xmlParserError;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2755:       hdlr->fatalError = xmlParserError;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2757:       return(0);
STEPPED p1 [xmlInitParserCtxt in parserInternals.c]
1529:       if (ctxt->dict == NULL)
STEPPED p1 [xmlInitParserCtxt in parserInternals.c]
1530:           ctxt->dict = xmlDictCreate();
STEPPED p1 [xmlDictCreate in dict.c]
445:            if (!xmlInitializeDict())
SIGNALED 11 (segv code[SEGV_MAPERR] address[0xbfe3a5dc]) in p1
        0xbfe3a5dc (..............)     jmp    *1308(%ebx)
debug> quit

Running debug on a file without a DTD:

$ debug /usr/local/bin/xmllint test-withoutdtd.xml
New program xmllint (process p1) created
HALTED p1 [main in xmllint.c]
2943:       int version = 0;
debug> step -c 0
STEPPED p1 [main in xmllint.c]
2946:       if (argc <= 1) {
STEPPED p1 [main in xmllint.c]
2950:       LIBXML_TEST_VERSION
STEPPED p1 [xmlCheckVersion in parserInternals.c]
75:         if ((myversion / 10000) != (version / 10000)) {
STEPPED p1 [xmlCheckVersion in parserInternals.c]
83:         if ((myversion / 100) < (version / 100)) {
STEPPED p1 [xmlCheckVersion in parserInternals.c]
87:         }
STEPPED p1 [main in xmllint.c]
2951:       for (i = 1; i < argc ; i++) {
STEPPED p1 [main in xmllint.c]
2952:           if (!strcmp(argv[i], "-"))
STEPPED p1 [main in xmllint.c]
2955:           if (argv[i][0] != '-')
STEPPED p1 [main in xmllint.c]
3265:       if (nocatalogs == 0) {
STEPPED p1 [main in xmllint.c]
3266:           if (catalogs) {
STEPPED p1 [main in xmllint.c]
3280:       if (sax1)
STEPPED p1 [main in xmllint.c]
3283:           xmlSAXDefaultVersion(2);
STEPPED p1 [xmlSAXDefaultVersion in SAX2.c]
2694:       int ret = xmlSAX2DefaultVersionValue;
STEPPED p1 [xmlSAXDefaultVersion in SAX2.c]
2696:       if ((version != 1) && (version != 2))
STEPPED p1 [xmlSAXDefaultVersion in SAX2.c]
2698:       xmlSAX2DefaultVersionValue = version;
STEPPED p1 [xmlSAXDefaultVersion in SAX2.c]
2699:       return(ret);
STEPPED p1 [main in xmllint.c]
3286:       if (chkregister) {
STEPPED p1 [main in xmllint.c]
3291:       indent = getenv("XMLLINT_INDENT");
STEPPED p1 [main in xmllint.c]
3292:       if(indent != NULL) {
STEPPED p1 [main in xmllint.c]
3297:       defaultEntityLoader = xmlGetExternalEntityLoader();
STEPPED p1 [xmlGetExternalEntityLoader in xmlIO.c]
3861:       return(xmlCurrentExternalEntityLoader);
STEPPED p1 [main in xmllint.c]
3298:       xmlSetExternalEntityLoader(xmllintExternalEntityLoader);
STEPPED p1 [xmlSetExternalEntityLoader in xmlIO.c]
3849:       xmlCurrentExternalEntityLoader = f;
STEPPED p1 [main in xmllint.c]
3300:       xmlLineNumbersDefault(1);
STEPPED p1 [xmlLineNumbersDefault in parserInternals.c]
2013:       int old = xmlLineNumbersDefaultValue;
STEPPED p1 [xmlLineNumbersDefault in parserInternals.c]
2012:   xmlLineNumbersDefault(int val) {
STEPPED p1 [xmlLineNumbersDefault in parserInternals.c]
2013:       int old = xmlLineNumbersDefaultValue;
STEPPED p1 [xmlLineNumbersDefault in parserInternals.c]
2015:       xmlLineNumbersDefaultValue = val;
STEPPED p1 [xmlLineNumbersDefault in parserInternals.c]
2016:       return(old);
STEPPED p1 [main in xmllint.c]
3301:       if (loaddtd != 0)
STEPPED p1 [main in xmllint.c]
3303:       if (dtdattrs)
STEPPED p1 [main in xmllint.c]
3305:       if (noent != 0) xmlSubstituteEntitiesDefault(1);
STEPPED p1 [main in xmllint.c]
3307:       if (valid != 0) xmlDoValidityCheckingDefaultValue = 1;
STEPPED p1 [main in xmllint.c]
3309:       if ((htmlout) && (!nowrap)) {
STEPPED p1 [main in xmllint.c]
3323:       if ((schematron != NULL) && (sax == 0)
STEPPED p1 [main in xmllint.c]
3357:       if ((relaxng != NULL) && (sax == 0)
STEPPED p1 [main in xmllint.c]
3415:       if ((pattern != NULL)
STEPPED p1 [main in xmllint.c]
3429:       for (i = 1; i < argc ; i++) {
STEPPED p1 [main in xmllint.c]
3430:           if ((!strcmp(argv[i], "-encode")) ||
STEPPED p1 [main in xmllint.c]
3434:           } else if ((!strcmp(argv[i], "-o")) ||
STEPPED p1 [main in xmllint.c]
3441:           if ((!strcmp(argv[i], "-dtdvalid")) ||
STEPPED p1 [main in xmllint.c]
3446:           if ((!strcmp(argv[i], "-path")) ||
STEPPED p1 [main in xmllint.c]
3451:           if ((!strcmp(argv[i], "-dtdvalidfpi")) ||
STEPPED p1 [main in xmllint.c]
3457:           if ((!strcmp(argv[i], "-relaxng")) ||
STEPPED p1 [main in xmllint.c]
3462:           if ((!strcmp(argv[i], "-maxmem")) ||
STEPPED p1 [main in xmllint.c]
3467:           if ((!strcmp(argv[i], "-schema")) ||
STEPPED p1 [main in xmllint.c]
3472:           if ((!strcmp(argv[i], "-schematron")) ||
STEPPED p1 [main in xmllint.c]
3478:           if ((!strcmp(argv[i], "-pattern")) ||
STEPPED p1 [main in xmllint.c]
3484:           if ((timing) && (repeat))
STEPPED p1 [main in xmllint.c]
3487:           if ((argv[i][0] != '-') || (strcmp(argv[i], "-") == 0)) {
STEPPED p1 [main in xmllint.c]
3488:               if (repeat) {
STEPPED p1 [main in xmllint.c]
3511:                   nbregister = 0;
STEPPED p1 [main in xmllint.c]
3514:                   if (stream != 0)
STEPPED p1 [main in xmllint.c]
3518:                   if (sax) {
STEPPED p1 [main in xmllint.c]
3521:                       parseAndPrintFile(argv[i], NULL);
STEPPED p1 [parseAndPrintFile in xmllint.c]
2049:       xmlDocPtr doc = NULL;
STEPPED p1 [parseAndPrintFile in xmllint.c]
2054:       if ((timing) && (!repeat))
STEPPED p1 [parseAndPrintFile in xmllint.c]
2059:       if (filename == NULL) {
STEPPED p1 [parseAndPrintFile in xmllint.c]
2072:       else if ((html) && (push)) {
STEPPED p1 [parseAndPrintFile in xmllint.c]
2131:           if (push) {
STEPPED p1 [parseAndPrintFile in xmllint.c]
2171:           if (testIO) {
STEPPED p1 [parseAndPrintFile in xmllint.c]
2258:               if (rectxt != NULL)
STEPPED p1 [parseAndPrintFile in xmllint.c]
2262:                   if (sax1)
STEPPED p1 [parseAndPrintFile in xmllint.c]
2266:                   doc = xmlReadFile(filename, NULL, options);
STEPPED p1 [xmlReadFile in parser.c]
14314:      ctxt = xmlCreateURLParserCtxt(filename, options);
STEPPED p1 [xmlCreateURLParserCtxt in parser.c]
13167:      ctxt = xmlNewParserCtxt();
STEPPED p1 [xmlNewParserCtxt in parserInternals.c]
1777:       if (ctxt == NULL) {
STEPPED p1 [xmlNewParserCtxt in parserInternals.c]
1781:       memset(ctxt, 0, sizeof(xmlParserCtxt));
STEPPED p1 [xmlNewParserCtxt in parserInternals.c]
1782:       if (xmlInitParserCtxt(ctxt) < 0) {
STEPPED p1 [xmlInitParserCtxt in parserInternals.c]
1522:       if(ctxt==NULL) {
STEPPED p1 [xmlInitParserCtxt in parserInternals.c]
1527:       xmlDefaultSAXHandlerInit();
STEPPED p1 [xmlDefaultSAXHandlerInit in SAX2.c]
2789:       xmlSAXVersion((xmlSAXHandlerPtr) &xmlDefaultSAXHandler, 1);
STEPPED p1 [xmlSAXVersion in SAX2.c]
2715:       if (hdlr == NULL) return(-1);
STEPPED p1 [xmlSAXVersion in SAX2.c]
2716:       if (version == 2) {
STEPPED p1 [xmlSAXVersion in SAX2.c]
2725:           hdlr->startElement = xmlSAX2StartElement;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2726:           hdlr->endElement = xmlSAX2EndElement;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2727:           hdlr->initialized = 1;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2731:       hdlr->internalSubset = xmlSAX2InternalSubset;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2732:       hdlr->externalSubset = xmlSAX2ExternalSubset;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2733:       hdlr->isStandalone = xmlSAX2IsStandalone;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2734:       hdlr->hasInternalSubset = xmlSAX2HasInternalSubset;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2735:       hdlr->hasExternalSubset = xmlSAX2HasExternalSubset;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2736:       hdlr->resolveEntity = xmlSAX2ResolveEntity;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2737:       hdlr->getEntity = xmlSAX2GetEntity;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2738:       hdlr->getParameterEntity = xmlSAX2GetParameterEntity;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2739:       hdlr->entityDecl = xmlSAX2EntityDecl;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2740:       hdlr->attributeDecl = xmlSAX2AttributeDecl;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2741:       hdlr->elementDecl = xmlSAX2ElementDecl;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2742:       hdlr->notationDecl = xmlSAX2NotationDecl;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2743:       hdlr->unparsedEntityDecl = xmlSAX2UnparsedEntityDecl;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2744:       hdlr->setDocumentLocator = xmlSAX2SetDocumentLocator;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2745:       hdlr->startDocument = xmlSAX2StartDocument;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2746:       hdlr->endDocument = xmlSAX2EndDocument;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2747:       hdlr->reference = xmlSAX2Reference;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2748:       hdlr->characters = xmlSAX2Characters;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2749:       hdlr->cdataBlock = xmlSAX2CDataBlock;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2751:       hdlr->processingInstruction = xmlSAX2ProcessingInstruction;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2752:       hdlr->comment = xmlSAX2Comment;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2753:       hdlr->warning = xmlParserWarning;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2754:       hdlr->error = xmlParserError;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2748:       hdlr->characters = xmlSAX2Characters;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2750:       hdlr->ignorableWhitespace = xmlSAX2Characters;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2754:       hdlr->error = xmlParserError;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2755:       hdlr->fatalError = xmlParserError;
STEPPED p1 [xmlSAXVersion in SAX2.c]
2757:       return(0);
STEPPED p1 [xmlInitParserCtxt in parserInternals.c]
1529:       if (ctxt->dict == NULL)
STEPPED p1 [xmlInitParserCtxt in parserInternals.c]
1530:           ctxt->dict = xmlDictCreate();
STEPPED p1 [xmlDictCreate in dict.c]
445:            if (!xmlInitializeDict())
<?xml version="1.0" encoding="UTF-8"?>
<greeting>Hello, world!</greeting>
Process p1 has exited
No more processes
debug> quit
Comment 3 GNOME Infrastructure Team 2021-07-05 13:24:40 UTC
GNOME is going to shut down bugzilla.gnome.org in favor of gitlab.gnome.org.
As part of that, we are mass-closing older open tickets in bugzilla.gnome.org
which have not seen updates for a longer time (resources are unfortunately
quite limited so not every ticket can get handled).

If you can still reproduce the situation described in this ticket in a recent
and supported software version, then please follow
  https://wiki.gnome.org/GettingInTouch/BugReportingGuidelines
and create a new ticket at
  https://gitlab.gnome.org/GNOME/libxml2/-/issues/

Thank you for your understanding and your help.