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()
1201 SVal MallocChecker::evalMulForBufferSize(CheckerContext &C, const Expr *Blocks, in evalMulForBufferSize()
1212 void MallocChecker::checkBasicAlloc(const CallEvent &Call, in checkBasicAlloc()
1221 void MallocChecker::checkKernelMalloc(const CallEvent &Call, in checkKernelMalloc()
1262 void MallocChecker::checkRealloc(const CallEvent &Call, CheckerContext &C, in checkRealloc()
1278 void MallocChecker::checkCalloc(const CallEvent &Call, in checkCalloc()
1287 void MallocChecker::checkFree(const CallEvent &Call, CheckerContext &C) const { in checkFree()
1297 void MallocChecker::checkAlloca(const CallEvent &Call, in checkAlloca()
1306 void MallocChecker::checkStrdup(const CallEvent &Call, in checkStrdup()
1317 void MallocChecker::checkIfNameIndex(const CallEvent &Call, in checkIfNameIndex()
1328 void MallocChecker::checkIfFreeNameIndex(const CallEvent &Call, in checkIfFreeNameIndex()
1337 void MallocChecker::checkCXXNewOrCXXDelete(const CallEvent &Call, in checkCXXNewOrCXXDelete()
1378 void MallocChecker::checkGMalloc0(const CallEvent &Call, in checkGMalloc0()
1388 void MallocChecker::checkGMemdup(const CallEvent &Call, in checkGMemdup()
1397 void MallocChecker::checkGMallocN(const CallEvent &Call, in checkGMallocN()
1408 void MallocChecker::checkGMallocN0(const CallEvent &Call, in checkGMallocN0()
1420 void MallocChecker::checkReallocN(const CallEvent &Call, in checkReallocN()
1430 void MallocChecker::checkOwnershipAttr(const CallEvent &Call, in checkOwnershipAttr()
1459 void MallocChecker::checkPostCall(const CallEvent &Call, in checkPostCall()
1492 ProgramStateRef MallocChecker::ProcessZeroAllocCheck( in ProcessZeroAllocCheck()
1597 MallocChecker::processNewAllocation(const CXXAllocatorCall &Call, in processNewAllocation()
1624 void MallocChecker::checkNewAllocator(const CXXAllocatorCall &Call, in checkNewAllocator()
1657 void MallocChecker::checkPostObjCMessage(const ObjCMethodCall &Call, in checkPostObjCMessage()
1682 MallocChecker::MallocMemReturnsAttr(CheckerContext &C, const CallEvent &Call, in MallocMemReturnsAttr()
1699 ProgramStateRef MallocChecker::MallocMemAux(CheckerContext &C, in MallocMemAux()
1711 ProgramStateRef MallocChecker::MallocMemAux(CheckerContext &C, in MallocMemAux()
1772 ProgramStateRef MallocChecker::FreeMemAttr(CheckerContext &C, in FreeMemAttr()
1795 ProgramStateRef MallocChecker::FreeMemAux(CheckerContext &C, in FreeMemAux()
1890 ProgramStateRef MallocChecker::FreeMemAux( in FreeMemAux()
2066 std::optional<MallocChecker::CheckKind>
2067 MallocChecker::getCheckIfTracked(AllocationFamily Family, in getCheckIfTracked()
2101 std::optional<MallocChecker::CheckKind>
2102 MallocChecker::getCheckIfTracked(CheckerContext &C, SymbolRef Sym, in getCheckIfTracked()
2112 bool MallocChecker::SummarizeValue(raw_ostream &os, SVal V) { in SummarizeValue()
2127 bool MallocChecker::SummarizeRegion(raw_ostream &os, in SummarizeRegion()
2201 void MallocChecker::HandleNonHeapDealloc(CheckerContext &C, SVal ArgVal, in HandleNonHeapDealloc()
2211 std::optional<MallocChecker::CheckKind> CheckKind = getCheckIfTracked(Family); in HandleNonHeapDealloc()
2249 void MallocChecker::HandleFreeAlloca(CheckerContext &C, SVal ArgVal, in HandleFreeAlloca()
2252 std::optional<MallocChecker::CheckKind> CheckKind; in HandleFreeAlloca()
2277 void MallocChecker::HandleMismatchedDealloc(CheckerContext &C, in HandleMismatchedDealloc()
2334 void MallocChecker::HandleOffsetFree(CheckerContext &C, SVal ArgVal, in HandleOffsetFree()
2344 std::optional<MallocChecker::CheckKind> CheckKind = getCheckIfTracked(Family); in HandleOffsetFree()
2392 void MallocChecker::HandleUseAfterFree(CheckerContext &C, SourceRange Range, in HandleUseAfterFree()
2401 std::optional<MallocChecker::CheckKind> CheckKind = getCheckIfTracked(C, Sym); in HandleUseAfterFree()
2431 void MallocChecker::HandleDoubleFree(CheckerContext &C, SourceRange Range, in HandleDoubleFree()
2440 std::optional<MallocChecker::CheckKind> CheckKind = getCheckIfTracked(C, Sym); in HandleDoubleFree()
2463 void MallocChecker::HandleDoubleDelete(CheckerContext &C, SymbolRef Sym) const { in HandleDoubleDelete()
2470 std::optional<MallocChecker::CheckKind> CheckKind = getCheckIfTracked(C, Sym); in HandleDoubleDelete()
2489 void MallocChecker::HandleUseZeroAlloc(CheckerContext &C, SourceRange Range, in HandleUseZeroAlloc()
2497 std::optional<MallocChecker::CheckKind> CheckKind = getCheckIfTracked(C, Sym); in HandleUseZeroAlloc()
2521 void MallocChecker::HandleFunctionPtrFree(CheckerContext &C, SVal ArgVal, in HandleFunctionPtrFree()
2530 std::optional<MallocChecker::CheckKind> CheckKind = getCheckIfTracked(Family); in HandleFunctionPtrFree()
2561 MallocChecker::ReallocMemAux(CheckerContext &C, const CallEvent &Call, in ReallocMemAux()
2669 ProgramStateRef MallocChecker::CallocMem(CheckerContext &C, in CallocMem()
2686 MallocChecker::LeakInfo MallocChecker::getAllocationSite(const ExplodedNode *N, in getAllocationSite()
2727 void MallocChecker::HandleLeak(SymbolRef Sym, ExplodedNode *N, in HandleLeak()
2741 std::optional<MallocChecker::CheckKind> CheckKind = in HandleLeak()
2792 void MallocChecker::checkDeadSymbols(SymbolReaper &SymReaper, in checkDeadSymbols()
2853 void MallocChecker::checkPreCall(const CallEvent &Call, in checkPreCall()
2912 void MallocChecker::checkPreStmt(const ReturnStmt *S, in checkPreStmt()
2920 void MallocChecker::checkEndFunction(const ReturnStmt *S, in checkEndFunction()
2925 void MallocChecker::checkEscapeOnReturn(const ReturnStmt *S, in checkEscapeOnReturn()
2956 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()
3274 ProgramStateRef MallocChecker::checkPointerEscape(ProgramStateRef State, in checkPointerEscape()
3282 ProgramStateRef MallocChecker::checkConstPointerEscape(ProgramStateRef State, in checkConstPointerEscape()
3296 ProgramStateRef MallocChecker::checkPointerEscapeAux( in checkPointerEscapeAux()
3326 bool MallocChecker::isArgZERO_SIZE_PTR(ProgramStateRef State, CheckerContext &C, in isArgZERO_SIZE_PTR()
3554 void MallocChecker::printState(raw_ostream &Out, ProgramStateRef State, in printState()
3564 std::optional<MallocChecker::CheckKind> CheckKind = in printState()
3596 MallocChecker *checker = mgr.getChecker<MallocChecker>(); in registerInnerPointerCheckerAux()
3597 checker->ChecksEnabled[MallocChecker::CK_InnerPointerChecker] = true; in registerInnerPointerCheckerAux()
3598 checker->CheckNames[MallocChecker::CK_InnerPointerChecker] = in registerInnerPointerCheckerAux()
3603 auto *checker = mgr.registerChecker<MallocChecker>(); in registerDynamicMemoryModeling()
3617 MallocChecker *checker = mgr.getChecker<MallocChecker>(); \
3618 checker->ChecksEnabled[MallocChecker::CK_##name] = true; \
3619 checker->CheckNames[MallocChecker::CK_##name] = \
3625 REGISTER_CHECKER(MallocChecker)