mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-10-24 13:33:01 +03:00
Fix a regression in 2.9.0 breaking validation while streaming
https://bugzilla.gnome.org/show_bug.cgi?id=684774 with help from Kjell Ahlstedt <kjell.ahlstedt@bredband.net>
This commit is contained in:
2
SAX2.c
2
SAX2.c
@@ -2202,7 +2202,7 @@ xmlSAX2StartElementNs(void *ctx,
|
|||||||
(ctxt->myDoc->intSubset->elements == NULL) &&
|
(ctxt->myDoc->intSubset->elements == NULL) &&
|
||||||
(ctxt->myDoc->intSubset->attributes == NULL) &&
|
(ctxt->myDoc->intSubset->attributes == NULL) &&
|
||||||
(ctxt->myDoc->intSubset->entities == NULL)))) {
|
(ctxt->myDoc->intSubset->entities == NULL)))) {
|
||||||
xmlErrValid(ctxt, XML_ERR_NO_DTD,
|
xmlErrValid(ctxt, XML_DTD_NO_DTD,
|
||||||
"Validation failed: no DTD found !", NULL, NULL);
|
"Validation failed: no DTD found !", NULL, NULL);
|
||||||
ctxt->validate = 0;
|
ctxt->validate = 0;
|
||||||
}
|
}
|
||||||
|
|||||||
7
parser.c
7
parser.c
@@ -11633,7 +11633,7 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) {
|
|||||||
"PP: Parsing internal subset\n");
|
"PP: Parsing internal subset\n");
|
||||||
#endif
|
#endif
|
||||||
ctxt->inSubset = 1;
|
ctxt->inSubset = 1;
|
||||||
ctxt->progressive = 1;
|
ctxt->progressive = 0;
|
||||||
ctxt->checkIndex = 0;
|
ctxt->checkIndex = 0;
|
||||||
xmlParseDocTypeDecl(ctxt);
|
xmlParseDocTypeDecl(ctxt);
|
||||||
if (RAW == '[') {
|
if (RAW == '[') {
|
||||||
@@ -12219,7 +12219,10 @@ xmldecl_done:
|
|||||||
}
|
}
|
||||||
ctxt->instate = XML_PARSER_EOF;
|
ctxt->instate = XML_PARSER_EOF;
|
||||||
}
|
}
|
||||||
return((xmlParserErrors) ctxt->errNo);
|
if (ctxt->wellFormed == 0)
|
||||||
|
return((xmlParserErrors) ctxt->errNo);
|
||||||
|
else
|
||||||
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
|
|||||||
Reference in New Issue
Block a user