previous fix for #124044 was broken, correct fix provided. fix
* python/libxml.c: previous fix for #124044 was broken, correct
fix provided.
* HTMLparser.c parser.c parserInternals.c xmlIO.c: fix xmlStopParser()
and the error handlers to address #125877
Daniel
diff --git a/parserInternals.c b/parserInternals.c
index 7d18788..67fbd63 100644
--- a/parserInternals.c
+++ b/parserInternals.c
@@ -105,6 +105,9 @@
void
xmlErrMemory(xmlParserCtxtPtr ctxt, const char *extra)
{
+ if ((ctxt != NULL) && (ctxt->disableSAX != 0) &&
+ (ctxt->instate == XML_PARSER_EOF))
+ return;
if (ctxt != NULL) {
ctxt->errNo = XML_ERR_NO_MEMORY;
ctxt->instate = XML_PARSER_EOF;
@@ -135,6 +138,9 @@
__xmlErrEncoding(xmlParserCtxtPtr ctxt, xmlParserErrors error,
const char *msg, const xmlChar * str1, const xmlChar * str2)
{
+ if ((ctxt != NULL) && (ctxt->disableSAX != 0) &&
+ (ctxt->instate == XML_PARSER_EOF))
+ return;
if (ctxt != NULL)
ctxt->errNo = error;
__xmlRaiseError(NULL, NULL, NULL,
@@ -159,6 +165,9 @@
static void
xmlErrInternal(xmlParserCtxtPtr ctxt, const char *msg, const xmlChar * str)
{
+ if ((ctxt != NULL) && (ctxt->disableSAX != 0) &&
+ (ctxt->instate == XML_PARSER_EOF))
+ return;
if (ctxt != NULL)
ctxt->errNo = XML_ERR_INTERNAL_ERROR;
__xmlRaiseError(NULL, NULL, NULL,
@@ -185,6 +194,9 @@
xmlErrEncodingInt(xmlParserCtxtPtr ctxt, xmlParserErrors error,
const char *msg, int val)
{
+ if ((ctxt != NULL) && (ctxt->disableSAX != 0) &&
+ (ctxt->instate == XML_PARSER_EOF))
+ return;
if (ctxt != NULL)
ctxt->errNo = error;
__xmlRaiseError(NULL, NULL, NULL,