diff options
Diffstat (limited to 'main/libxml2/Length-related-XHTML-parsing-errors.patch')
| -rw-r--r-- | main/libxml2/Length-related-XHTML-parsing-errors.patch | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/main/libxml2/Length-related-XHTML-parsing-errors.patch b/main/libxml2/Length-related-XHTML-parsing-errors.patch new file mode 100644 index 0000000000..7a4363198e --- /dev/null +++ b/main/libxml2/Length-related-XHTML-parsing-errors.patch @@ -0,0 +1,63 @@ +From 7a1bd7f6497ac33a9023d556f6f47a48f01deac0 Mon Sep 17 00:00:00 2001 +From: Nick Wellnhofer <wellnhofer@aevum.de> +Date: Sat, 17 Mar 2018 00:03:24 +0100 +Subject: [PATCH] Revert "Change calls to xmlCharEncInput to set flush false" + +This reverts commit 6e6ae5daa6cd9640c9a83c1070896273e9b30d14 which +broke decoding of larger documents with ICU. + +See https://bugs.chromium.org/p/chromium/issues/detail?id=820163 +--- + HTMLparser.c | 2 +- + parserInternals.c | 2 +- + xmlIO.c | 4 ++-- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/HTMLparser.c b/HTMLparser.c +index 9adeb174..7e243e60 100644 +--- a/HTMLparser.c ++++ b/HTMLparser.c +@@ -3635,7 +3635,7 @@ htmlCheckEncodingDirect(htmlParserCtxtPtr ctxt, const xmlChar *encoding) { + */ + processed = ctxt->input->cur - ctxt->input->base; + xmlBufShrink(ctxt->input->buf->buffer, processed); +- nbchars = xmlCharEncInput(ctxt->input->buf, 0); ++ nbchars = xmlCharEncInput(ctxt->input->buf, 1); + if (nbchars < 0) { + htmlParseErr(ctxt, XML_ERR_INVALID_ENCODING, + "htmlCheckEncoding: encoder error\n", +diff --git a/parserInternals.c b/parserInternals.c +index 8c0cd57a..09876ab4 100644 +--- a/parserInternals.c ++++ b/parserInternals.c +@@ -1214,7 +1214,7 @@ xmlSwitchInputEncodingInt(xmlParserCtxtPtr ctxt, xmlParserInputPtr input, + /* + * convert as much as possible of the buffer + */ +- nbchars = xmlCharEncInput(input->buf, 0); ++ nbchars = xmlCharEncInput(input->buf, 1); + } else { + /* + * convert just enough to get +diff --git a/xmlIO.c b/xmlIO.c +index 82543477..f61dd05a 100644 +--- a/xmlIO.c ++++ b/xmlIO.c +@@ -3157,7 +3157,7 @@ xmlParserInputBufferPush(xmlParserInputBufferPtr in, + * convert as much as possible to the parser reading buffer. + */ + use = xmlBufUse(in->raw); +- nbchars = xmlCharEncInput(in, 0); ++ nbchars = xmlCharEncInput(in, 1); + if (nbchars < 0) { + xmlIOErr(XML_IO_ENCODER, NULL); + in->error = XML_IO_ENCODER; +@@ -3273,7 +3273,7 @@ xmlParserInputBufferGrow(xmlParserInputBufferPtr in, int len) { + * convert as much as possible to the parser reading buffer. + */ + use = xmlBufUse(in->raw); +- nbchars = xmlCharEncInput(in, 0); ++ nbchars = xmlCharEncInput(in, 1); + if (nbchars < 0) { + xmlIOErr(XML_IO_ENCODER, NULL); + in->error = XML_IO_ENCODER;
\ No newline at end of file |
