From 10281040ca6b3a54db7880eed9c67957d11622eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20=C4=8Ciha=C5=99?= Date: Wed, 29 Jun 2016 16:11:10 +0200 Subject: [PATCH] Avoid crash in tidyCleanAndRepair if document was not loaded These services can only be used when there is a document loaded, ie a lexer created. But really should not be calling a Clean and Repair service with no doc! --- src/tidylib.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/tidylib.c b/src/tidylib.c index 28ebbb2..4787336 100755 --- a/src/tidylib.c +++ b/src/tidylib.c @@ -1908,9 +1908,18 @@ int tidyDocCleanAndRepair( TidyDocImpl* doc ) it can ever be, so we can start detecting things that shouldn't be in this version of HTML */ - if (doc->lexer->versionEmitted & VERS_HTML5) - TY_(CheckHTML5)( doc, &doc->root ); - TY_(CheckHTMLTagsAttribsVersions)( doc, &doc->root ); + if (doc->lexer) + { + /*\ + * Issue #429 #426 - These services can only be used + * when there is a document loaded, ie a lexer created. + * But really should not be calling a Clean and Repair + * service with no doc! + \*/ + if (doc->lexer->versionEmitted & VERS_HTML5) + TY_(CheckHTML5)( doc, &doc->root ); + TY_(CheckHTMLTagsAttribsVersions)( doc, &doc->root ); + } #if !defined(NDEBUG) && defined(_MSC_VER) SPRTF("All nodes AFTER clean and repair\n");