From: Reka Kovacs Date: Thu, 2 Aug 2018 22:19:57 +0000 (+0000) Subject: [analyzer] Add a safety check to InnerPointerChecker. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7000f748bdd1cb3a55c6251ae67fe166657425bd;p=clang [analyzer] Add a safety check to InnerPointerChecker. Do not crash if the CXXRecordDecl of an object is not available. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@338775 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp b/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp index 29677f737f..b253e67cff 100644 --- a/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp +++ b/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp @@ -129,8 +129,11 @@ bool InnerPointerChecker::isCalledOnStringObject( return false; QualType ObjTy = ObjRegion->getValueType(); - if (ObjTy.isNull() || - ObjTy->getAsCXXRecordDecl()->getName() != "basic_string") + if (ObjTy.isNull()) + return false; + + CXXRecordDecl *Decl = ObjTy->getAsCXXRecordDecl(); + if (!Decl || Decl->getName() != "basic_string") return false; return true;