Lines Matching refs:MallocChecker
299 class MallocChecker class
391 using CheckFn = std::function<void(const MallocChecker *,
395 {{{"free"}, 1}, &MallocChecker::checkFree},
396 {{{"if_freenameindex"}, 1}, &MallocChecker::checkIfFreeNameIndex},
397 {{{"kfree"}, 1}, &MallocChecker::checkFree},
398 {{{"g_free"}, 1}, &MallocChecker::checkFree},
407 {{{"alloca"}, 1}, &MallocChecker::checkAlloca},
408 {{{"_alloca"}, 1}, &MallocChecker::checkAlloca},
409 {{{"malloc"}, 1}, &MallocChecker::checkBasicAlloc},
410 {{{"malloc"}, 3}, &MallocChecker::checkKernelMalloc},
411 {{{"calloc"}, 2}, &MallocChecker::checkCalloc},
412 {{{"valloc"}, 1}, &MallocChecker::checkBasicAlloc},
413 {{CDF_MaybeBuiltin, {"strndup"}, 2}, &MallocChecker::checkStrdup},
414 {{CDF_MaybeBuiltin, {"strdup"}, 1}, &MallocChecker::checkStrdup},
415 {{{"_strdup"}, 1}, &MallocChecker::checkStrdup},
416 {{{"kmalloc"}, 2}, &MallocChecker::checkKernelMalloc},
417 {{{"if_nameindex"}, 1}, &MallocChecker::checkIfNameIndex},
418 {{CDF_MaybeBuiltin, {"wcsdup"}, 1}, &MallocChecker::checkStrdup},
419 {{CDF_MaybeBuiltin, {"_wcsdup"}, 1}, &MallocChecker::checkStrdup},
420 {{{"g_malloc"}, 1}, &MallocChecker::checkBasicAlloc},
421 {{{"g_malloc0"}, 1}, &MallocChecker::checkGMalloc0},
422 {{{"g_try_malloc"}, 1}, &MallocChecker::checkBasicAlloc},
423 {{{"g_try_malloc0"}, 1}, &MallocChecker::checkGMalloc0},
424 {{{"g_memdup"}, 2}, &MallocChecker::checkGMemdup},
425 {{{"g_malloc_n"}, 2}, &MallocChecker::checkGMallocN},
426 {{{"g_malloc0_n"}, 2}, &MallocChecker::checkGMallocN0},
427 {{{"g_try_malloc_n"}, 2}, &MallocChecker::checkGMallocN},
428 {{{"g_try_malloc0_n"}, 2}, &MallocChecker::checkGMallocN0},
433 std::bind(&MallocChecker::checkRealloc, _1, _2, _3, false)},
435 std::bind(&MallocChecker::checkRealloc, _1, _2, _3, true)},
437 std::bind(&MallocChecker::checkRealloc, _1, _2, _3, false)},
439 std::bind(&MallocChecker::checkRealloc, _1, _2, _3, false)},
440 {{{"g_realloc_n"}, 3}, &MallocChecker::checkReallocN},
441 {{{"g_try_realloc_n"}, 3}, &MallocChecker::checkReallocN},
736 const MallocChecker &Checker;
802 return MallocChecker::isFreeingOwnershipAttrCall(Func); in isFreeingCallAsWritten()
906 NoOwnershipChangeVisitor(SymbolRef Sym, const MallocChecker *Checker) in NoOwnershipChangeVisitor()
1088 bool MallocChecker::isFreeingOwnershipAttrCall(const FunctionDecl *Func) { in isFreeingOwnershipAttrCall()
1099 bool MallocChecker::isFreeingCall(const CallEvent &Call) const { in isFreeingCall()
1109 bool MallocChecker::isMemCall(const CallEvent &Call) const { in isMemCall()
1122 MallocChecker::performKernelMalloc(const CallEvent &Call, CheckerContext &C, in performKernelMalloc()
1207 SVal MallocChecker::evalMulForBufferSize(CheckerContext &C, const Expr *Blocks, in evalMulForBufferSize()
1218 void MallocChecker::checkBasicAlloc(const CallEvent &Call, in checkBasicAlloc()
1227 void MallocChecker::checkKernelMalloc(const CallEvent &Call, in checkKernelMalloc()
1268 void MallocChecker::checkRealloc(const CallEvent &Call, CheckerContext &C, in checkRealloc()
1284 void MallocChecker::checkCalloc(const CallEvent &Call, in checkCalloc()
1293 void MallocChecker::checkFree(const CallEvent &Call, CheckerContext &C) const { in checkFree()
1303 void MallocChecker::checkAlloca(const CallEvent &Call, in checkAlloca()
1312 void MallocChecker::checkStrdup(const CallEvent &Call, in checkStrdup()
1323 void MallocChecker::checkIfNameIndex(const CallEvent &Call, in checkIfNameIndex()
1334 void MallocChecker::checkIfFreeNameIndex(const CallEvent &Call, in checkIfFreeNameIndex()
1343 void MallocChecker::checkCXXNewOrCXXDelete(const CallEvent &Call, in checkCXXNewOrCXXDelete()
1384 void MallocChecker::checkGMalloc0(const CallEvent &Call, in checkGMalloc0()
1394 void MallocChecker::checkGMemdup(const CallEvent &Call, in checkGMemdup()
1403 void MallocChecker::checkGMallocN(const CallEvent &Call, in checkGMallocN()
1414 void MallocChecker::checkGMallocN0(const CallEvent &Call, in checkGMallocN0()
1426 void MallocChecker::checkReallocN(const CallEvent &Call, in checkReallocN()
1436 void MallocChecker::checkOwnershipAttr(const CallEvent &Call, in checkOwnershipAttr()
1465 void MallocChecker::checkPostCall(const CallEvent &Call, in checkPostCall()
1498 ProgramStateRef MallocChecker::ProcessZeroAllocCheck( in ProcessZeroAllocCheck()
1603 MallocChecker::processNewAllocation(const CXXAllocatorCall &Call, in processNewAllocation()
1630 void MallocChecker::checkNewAllocator(const CXXAllocatorCall &Call, in checkNewAllocator()
1663 void MallocChecker::checkPostObjCMessage(const ObjCMethodCall &Call, in checkPostObjCMessage()
1688 MallocChecker::MallocMemReturnsAttr(CheckerContext &C, const CallEvent &Call, in MallocMemReturnsAttr()
1705 ProgramStateRef MallocChecker::MallocMemAux(CheckerContext &C, in MallocMemAux()
1717 ProgramStateRef MallocChecker::MallocMemAux(CheckerContext &C, in MallocMemAux()
1780 ProgramStateRef MallocChecker::FreeMemAttr(CheckerContext &C, in FreeMemAttr()
1803 ProgramStateRef MallocChecker::FreeMemAux(CheckerContext &C, in FreeMemAux()
1898 ProgramStateRef MallocChecker::FreeMemAux( in FreeMemAux()
2071 std::optional<MallocChecker::CheckKind>
2072 MallocChecker::getCheckIfTracked(AllocationFamily Family, in getCheckIfTracked()
2106 std::optional<MallocChecker::CheckKind>
2107 MallocChecker::getCheckIfTracked(CheckerContext &C, SymbolRef Sym, in getCheckIfTracked()
2117 bool MallocChecker::SummarizeValue(raw_ostream &os, SVal V) { in SummarizeValue()
2132 bool MallocChecker::SummarizeRegion(raw_ostream &os, in SummarizeRegion()
2206 void MallocChecker::HandleNonHeapDealloc(CheckerContext &C, SVal ArgVal, in HandleNonHeapDealloc()
2216 std::optional<MallocChecker::CheckKind> CheckKind = getCheckIfTracked(Family); in HandleNonHeapDealloc()
2254 void MallocChecker::HandleFreeAlloca(CheckerContext &C, SVal ArgVal, in HandleFreeAlloca()
2257 std::optional<MallocChecker::CheckKind> CheckKind; in HandleFreeAlloca()
2282 void MallocChecker::HandleMismatchedDealloc(CheckerContext &C, in HandleMismatchedDealloc()
2339 void MallocChecker::HandleOffsetFree(CheckerContext &C, SVal ArgVal, in HandleOffsetFree()
2349 std::optional<MallocChecker::CheckKind> CheckKind = getCheckIfTracked(Family); in HandleOffsetFree()
2397 void MallocChecker::HandleUseAfterFree(CheckerContext &C, SourceRange Range, in HandleUseAfterFree()
2406 std::optional<MallocChecker::CheckKind> CheckKind = getCheckIfTracked(C, Sym); in HandleUseAfterFree()
2436 void MallocChecker::HandleDoubleFree(CheckerContext &C, SourceRange Range, in HandleDoubleFree()
2445 std::optional<MallocChecker::CheckKind> CheckKind = getCheckIfTracked(C, Sym); in HandleDoubleFree()
2468 void MallocChecker::HandleDoubleDelete(CheckerContext &C, SymbolRef Sym) const { in HandleDoubleDelete()
2475 std::optional<MallocChecker::CheckKind> CheckKind = getCheckIfTracked(C, Sym); in HandleDoubleDelete()
2494 void MallocChecker::HandleUseZeroAlloc(CheckerContext &C, SourceRange Range, in HandleUseZeroAlloc()
2502 std::optional<MallocChecker::CheckKind> CheckKind = getCheckIfTracked(C, Sym); in HandleUseZeroAlloc()
2526 void MallocChecker::HandleFunctionPtrFree(CheckerContext &C, SVal ArgVal, in HandleFunctionPtrFree()
2535 std::optional<MallocChecker::CheckKind> CheckKind = getCheckIfTracked(Family); in HandleFunctionPtrFree()
2566 MallocChecker::ReallocMemAux(CheckerContext &C, const CallEvent &Call, in ReallocMemAux()
2674 ProgramStateRef MallocChecker::CallocMem(CheckerContext &C, in CallocMem()
2691 MallocChecker::LeakInfo MallocChecker::getAllocationSite(const ExplodedNode *N, in getAllocationSite()
2732 void MallocChecker::HandleLeak(SymbolRef Sym, ExplodedNode *N, in HandleLeak()
2746 std::optional<MallocChecker::CheckKind> CheckKind = in HandleLeak()
2797 void MallocChecker::checkDeadSymbols(SymbolReaper &SymReaper, in checkDeadSymbols()
2855 void MallocChecker::checkPreCall(const CallEvent &Call, in checkPreCall()
2914 void MallocChecker::checkPreStmt(const ReturnStmt *S, in checkPreStmt()
2922 void MallocChecker::checkEndFunction(const ReturnStmt *S, in checkEndFunction()
2927 void MallocChecker::checkEscapeOnReturn(const ReturnStmt *S, in checkEscapeOnReturn()
2958 void MallocChecker::checkPostStmt(const BlockExpr *BE, in checkPostStmt()
2997 bool MallocChecker::suppressDeallocationsInSuspiciousContexts( in suppressDeallocationsInSuspiciousContexts()
3026 bool MallocChecker::checkUseAfterFree(SymbolRef Sym, CheckerContext &C, in checkUseAfterFree()
3037 void MallocChecker::checkUseZeroAllocated(SymbolRef Sym, CheckerContext &C, in checkUseZeroAllocated()
3050 bool MallocChecker::checkDoubleDelete(SymbolRef Sym, CheckerContext &C) const { in checkDoubleDelete()
3060 void MallocChecker::checkLocation(SVal l, bool isLoad, const Stmt *S, in checkLocation()
3071 ProgramStateRef MallocChecker::evalAssume(ProgramStateRef state, in evalAssume()
3115 bool MallocChecker::mayFreeAnyEscapedMemoryOrIsModeledExplicitly( in mayFreeAnyEscapedMemoryOrIsModeledExplicitly()
3279 ProgramStateRef MallocChecker::checkPointerEscape(ProgramStateRef State, in checkPointerEscape()
3287 ProgramStateRef MallocChecker::checkConstPointerEscape(ProgramStateRef State, in checkConstPointerEscape()
3301 ProgramStateRef MallocChecker::checkPointerEscapeAux( in checkPointerEscapeAux()
3327 bool MallocChecker::isArgZERO_SIZE_PTR(ProgramStateRef State, CheckerContext &C, in isArgZERO_SIZE_PTR()
3556 void MallocChecker::printState(raw_ostream &Out, ProgramStateRef State, in printState()
3566 std::optional<MallocChecker::CheckKind> CheckKind = in printState()
3598 MallocChecker *checker = mgr.getChecker<MallocChecker>(); in registerInnerPointerCheckerAux()
3599 checker->ChecksEnabled[MallocChecker::CK_InnerPointerChecker] = true; in registerInnerPointerCheckerAux()
3600 checker->CheckNames[MallocChecker::CK_InnerPointerChecker] = in registerInnerPointerCheckerAux()
3605 auto *checker = mgr.registerChecker<MallocChecker>(); in registerDynamicMemoryModeling()
3619 MallocChecker *checker = mgr.getChecker<MallocChecker>(); \
3620 checker->ChecksEnabled[MallocChecker::CK_##name] = true; \
3621 checker->CheckNames[MallocChecker::CK_##name] = \
3627 REGISTER_CHECKER(MallocChecker)