From: Saleem Abdulrasool Date: Wed, 19 Feb 2014 02:56:55 +0000 (+0000) Subject: CIndex: initialise TU X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=720a8471e8da74807971b52f3f239950df069805;p=clang 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 --- 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;