From 720a8471e8da74807971b52f3f239950df069805 Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Wed, 19 Feb 2014 02:56:55 +0000 Subject: [PATCH] CIndex: initialise TU TU is not guaranteed to be initialised in all cases. In particular if CIdx or ast_filename is NULL (or if &TU is NULL), then clang_createTranslationUnit2 will not initialise the out parameter out_TU. This is followed by an assertion check which may perform a branch based on unitialised memory. Caught by scan-build. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201628 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/libclang/CIndex.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/libclang/CIndex.cpp b/tools/libclang/CIndex.cpp index e862889f26..c5f41a8a74 100644 --- a/tools/libclang/CIndex.cpp +++ b/tools/libclang/CIndex.cpp @@ -2612,7 +2612,7 @@ void clang_toggleCrashRecovery(unsigned isEnabled) { CXTranslationUnit clang_createTranslationUnit(CXIndex CIdx, const char *ast_filename) { - CXTranslationUnit TU; + CXTranslationUnit TU = NULL; enum CXErrorCode Result = clang_createTranslationUnit2(CIdx, ast_filename, &TU); (void)Result; -- 2.40.0