From: Ted Kremenek Date: Fri, 5 Mar 2010 22:43:29 +0000 (+0000) Subject: Check if 'Unit' is NULL before trying to iterate over the diagnostics. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=34f6a322430e2cdcb38167781eb848b9b8e928bb;p=clang Check if 'Unit' is NULL before trying to iterate over the diagnostics. This obviates a null dereference that can occur when 'NumErrors' is not zero. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97849 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/tools/CIndex/CIndex.cpp b/tools/CIndex/CIndex.cpp index f07b94fc51..07bb7fbd83 100644 --- a/tools/CIndex/CIndex.cpp +++ b/tools/CIndex/CIndex.cpp @@ -1003,7 +1003,8 @@ clang_createTranslationUnitFromSourceFile(CXIndex CIdx, // FIXME: Until we have broader testing, just drop the entire AST if we // encountered an error. if (NumErrors != Diags->getNumErrors()) { - if (CXXIdx->getDisplayDiagnostics()) { + // Make sure to check that 'Unit' is non-NULL. + if (CXXIdx->getDisplayDiagnostics() && Unit.get()) { for (ASTUnit::diag_iterator D = Unit->diag_begin(), DEnd = Unit->diag_end(); D != DEnd; ++D) {