From 709a952110e98621c9b78c4f26462a9d8333102e Mon Sep 17 00:00:00 2001 From: Daniel Veillard Date: Mon, 29 Jun 2015 16:10:26 +0800 Subject: [PATCH] Fail parsing early on if encoding conversion failed For https://bugzilla.gnome.org/show_bug.cgi?id=751631 If we fail conversing the current input stream while processing the encoding declaration of the XMLDecl then it's safer to just abort there and not try to report further errors. Upstream-Status: Backport CVE: CVE-2015-8317 Signed-off-by: Armin Kuster --- parser.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/parser.c b/parser.c index a3a9568..0edd53b 100644 --- a/parser.c +++ b/parser.c @@ -10471,7 +10471,11 @@ xmlParseEncodingDecl(xmlParserCtxtPtr ctxt) { handler = xmlFindCharEncodingHandler((const char *) encoding); if (handler != NULL) { - xmlSwitchToEncoding(ctxt, handler); + if (xmlSwitchToEncoding(ctxt, handler) < 0) { + /* failed to convert */ + ctxt->errNo = XML_ERR_UNSUPPORTED_ENCODING; + return(NULL); + } } else { xmlFatalErrMsgStr(ctxt, XML_ERR_UNSUPPORTED_ENCODING, "Unsupported encoding %s\n", encoding); -- 2.3.5