]> granicus.if.org Git - clang/commitdiff
[analyzer] Add a safety check to InnerPointerChecker.
authorReka Kovacs <rekanikolett@gmail.com>
Thu, 2 Aug 2018 22:19:57 +0000 (22:19 +0000)
committerReka Kovacs <rekanikolett@gmail.com>
Thu, 2 Aug 2018 22:19:57 +0000 (22:19 +0000)
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

lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp

index 29677f737f5cf24c357b3d1b97cb4318006408dc..b253e67cffdeae6d4775a75d2bb3c80ff762b413 100644 (file)
@@ -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;