[libxml2] Fail parsing early on if encoding conversion failed



commit 709a952110e98621c9b78c4f26462a9d8333102e
Author: Daniel Veillard <veillard redhat com>
Date:   Mon Jun 29 16:10:26 2015 +0800

    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.

 parser.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)
---
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);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]