From c836ba66e57d4d9f90f1dc7a827625c99622408f Mon Sep 17 00:00:00 2001 From: Daniel Veillard Date: Mon, 14 Jul 2014 16:39:50 +0800 Subject: [PATCH] Fix a potential NULL dereference For https://bugzilla.gnome.org/show_bug.cgi?id=733040 xmlDictLookup() may return NULL in case of allocation error, though very unlikely it need to be checked. --- parser.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/parser.c b/parser.c index ba70f9ee..ba757eb1 100644 --- a/parser.c +++ b/parser.c @@ -9316,6 +9316,12 @@ reparse: const xmlChar *URL = xmlDictLookup(ctxt->dict, attvalue, len); xmlURIPtr uri; + if (URL == NULL) { + xmlErrMemory(ctxt, "dictionary allocation failure"); + if ((attvalue != NULL) && (alloc != 0)) + xmlFree(attvalue); + return(NULL); + } if (*URL != 0) { uri = xmlParseURI((const char *) URL); if (uri == NULL) {