Lines Matching refs:MallocChecker
298 class MallocChecker class
390 using CheckFn = std::function<void(const MallocChecker *,
394 {{"free", 1}, &MallocChecker::checkFree},
395 {{"if_freenameindex", 1}, &MallocChecker::checkIfFreeNameIndex},
396 {{"kfree", 1}, &MallocChecker::checkFree},
397 {{"g_free", 1}, &MallocChecker::checkFree},
406 {{"alloca", 1}, &MallocChecker::checkAlloca},
407 {{"_alloca", 1}, &MallocChecker::checkAlloca},
408 {{"malloc", 1}, &MallocChecker::checkBasicAlloc},
409 {{"malloc", 3}, &MallocChecker::checkKernelMalloc},
410 {{"calloc", 2}, &MallocChecker::checkCalloc},
411 {{"valloc", 1}, &MallocChecker::checkBasicAlloc},
412 {{CDF_MaybeBuiltin, "strndup", 2}, &MallocChecker::checkStrdup},
413 {{CDF_MaybeBuiltin, "strdup", 1}, &MallocChecker::checkStrdup},
414 {{"_strdup", 1}, &MallocChecker::checkStrdup},
415 {{"kmalloc", 2}, &MallocChecker::checkKernelMalloc},
416 {{"if_nameindex", 1}, &MallocChecker::checkIfNameIndex},
417 {{CDF_MaybeBuiltin, "wcsdup", 1}, &MallocChecker::checkStrdup},
418 {{CDF_MaybeBuiltin, "_wcsdup", 1}, &MallocChecker::checkStrdup},
419 {{"g_malloc", 1}, &MallocChecker::checkBasicAlloc},
420 {{"g_malloc0", 1}, &MallocChecker::checkGMalloc0},
421 {{"g_try_malloc", 1}, &MallocChecker::checkBasicAlloc},
422 {{"g_try_malloc0", 1}, &MallocChecker::checkGMalloc0},
423 {{"g_memdup", 2}, &MallocChecker::checkGMemdup},
424 {{"g_malloc_n", 2}, &MallocChecker::checkGMallocN},
425 {{"g_malloc0_n", 2}, &MallocChecker::checkGMallocN0},
426 {{"g_try_malloc_n", 2}, &MallocChecker::checkGMallocN},
427 {{"g_try_malloc0_n", 2}, &MallocChecker::checkGMallocN0},
432 std::bind(&MallocChecker::checkRealloc, _1, _2, _3, false)},
434 std::bind(&MallocChecker::checkRealloc, _1, _2, _3, true)},
436 std::bind(&MallocChecker::checkRealloc, _1, _2, _3, false)},
438 std::bind(&MallocChecker::checkRealloc, _1, _2, _3, false)},
439 {{"g_realloc_n", 3}, &MallocChecker::checkReallocN},
440 {{"g_try_realloc_n", 3}, &MallocChecker::checkReallocN},
750 const MallocChecker &Checker;
816 return MallocChecker::isFreeingOwnershipAttrCall(Func); in isFreeingCallAsWritten()
920 NoOwnershipChangeVisitor(SymbolRef Sym, const MallocChecker *Checker) in NoOwnershipChangeVisitor()
1102 bool MallocChecker::isFreeingOwnershipAttrCall(const FunctionDecl *Func) { in isFreeingOwnershipAttrCall()
1113 bool MallocChecker::isFreeingCall(const CallEvent &Call) const { in isFreeingCall()
1123 bool MallocChecker::isMemCall(const CallEvent &Call) const { in isMemCall()
1136 MallocChecker::performKernelMalloc(const CallEvent &Call, CheckerContext &C, in performKernelMalloc()
1216 SVal MallocChecker::evalMulForBufferSize(CheckerContext &C, const Expr *Blocks, in evalMulForBufferSize()
1227 void MallocChecker::checkBasicAlloc(const CallEvent &Call, in checkBasicAlloc()
1236 void MallocChecker::checkKernelMalloc(const CallEvent &Call, in checkKernelMalloc()
1277 void MallocChecker::checkRealloc(const CallEvent &Call, CheckerContext &C, in checkRealloc()
1293 void MallocChecker::checkCalloc(const CallEvent &Call, in checkCalloc()
1302 void MallocChecker::checkFree(const CallEvent &Call, CheckerContext &C) const { in checkFree()
1312 void MallocChecker::checkAlloca(const CallEvent &Call, in checkAlloca()
1321 void MallocChecker::checkStrdup(const CallEvent &Call, in checkStrdup()
1332 void MallocChecker::checkIfNameIndex(const CallEvent &Call, in checkIfNameIndex()
1343 void MallocChecker::checkIfFreeNameIndex(const CallEvent &Call, in checkIfFreeNameIndex()
1352 void MallocChecker::checkCXXNewOrCXXDelete(const CallEvent &Call, in checkCXXNewOrCXXDelete()
1393 void MallocChecker::checkGMalloc0(const CallEvent &Call, in checkGMalloc0()
1403 void MallocChecker::checkGMemdup(const CallEvent &Call, in checkGMemdup()
1412 void MallocChecker::checkGMallocN(const CallEvent &Call, in checkGMallocN()
1423 void MallocChecker::checkGMallocN0(const CallEvent &Call, in checkGMallocN0()
1435 void MallocChecker::checkReallocN(const CallEvent &Call, in checkReallocN()
1445 void MallocChecker::checkOwnershipAttr(const CallEvent &Call, in checkOwnershipAttr()
1474 void MallocChecker::checkPostCall(const CallEvent &Call, in checkPostCall()
1507 ProgramStateRef MallocChecker::ProcessZeroAllocCheck( in ProcessZeroAllocCheck()
1612 MallocChecker::processNewAllocation(const CXXAllocatorCall &Call, in processNewAllocation()
1639 void MallocChecker::checkNewAllocator(const CXXAllocatorCall &Call, in checkNewAllocator()
1672 void MallocChecker::checkPostObjCMessage(const ObjCMethodCall &Call, in checkPostObjCMessage()
1697 MallocChecker::MallocMemReturnsAttr(CheckerContext &C, const CallEvent &Call, in MallocMemReturnsAttr()
1714 ProgramStateRef MallocChecker::MallocMemAux(CheckerContext &C, in MallocMemAux()
1726 ProgramStateRef MallocChecker::MallocMemAux(CheckerContext &C, in MallocMemAux()
1783 ProgramStateRef MallocChecker::FreeMemAttr(CheckerContext &C, in FreeMemAttr()
1806 ProgramStateRef MallocChecker::FreeMemAux(CheckerContext &C, in FreeMemAux()
1901 ProgramStateRef MallocChecker::FreeMemAux( in FreeMemAux()
2077 Optional<MallocChecker::CheckKind>
2078 MallocChecker::getCheckIfTracked(AllocationFamily Family, in getCheckIfTracked()
2112 Optional<MallocChecker::CheckKind>
2113 MallocChecker::getCheckIfTracked(CheckerContext &C, SymbolRef Sym, in getCheckIfTracked()
2123 bool MallocChecker::SummarizeValue(raw_ostream &os, SVal V) { in SummarizeValue()
2136 bool MallocChecker::SummarizeRegion(raw_ostream &os, in SummarizeRegion()
2210 void MallocChecker::HandleNonHeapDealloc(CheckerContext &C, SVal ArgVal, in HandleNonHeapDealloc()
2220 Optional<MallocChecker::CheckKind> CheckKind = getCheckIfTracked(Family); in HandleNonHeapDealloc()
2258 void MallocChecker::HandleFreeAlloca(CheckerContext &C, SVal ArgVal, in HandleFreeAlloca()
2261 Optional<MallocChecker::CheckKind> CheckKind; in HandleFreeAlloca()
2286 void MallocChecker::HandleMismatchedDealloc(CheckerContext &C, in HandleMismatchedDealloc()
2343 void MallocChecker::HandleOffsetFree(CheckerContext &C, SVal ArgVal, in HandleOffsetFree()
2353 Optional<MallocChecker::CheckKind> CheckKind = getCheckIfTracked(Family); in HandleOffsetFree()
2401 void MallocChecker::HandleUseAfterFree(CheckerContext &C, SourceRange Range, in HandleUseAfterFree()
2410 Optional<MallocChecker::CheckKind> CheckKind = getCheckIfTracked(C, Sym); in HandleUseAfterFree()
2440 void MallocChecker::HandleDoubleFree(CheckerContext &C, SourceRange Range, in HandleDoubleFree()
2449 Optional<MallocChecker::CheckKind> CheckKind = getCheckIfTracked(C, Sym); in HandleDoubleFree()
2472 void MallocChecker::HandleDoubleDelete(CheckerContext &C, SymbolRef Sym) const { in HandleDoubleDelete()
2479 Optional<MallocChecker::CheckKind> CheckKind = getCheckIfTracked(C, Sym); in HandleDoubleDelete()
2498 void MallocChecker::HandleUseZeroAlloc(CheckerContext &C, SourceRange Range, in HandleUseZeroAlloc()
2506 Optional<MallocChecker::CheckKind> CheckKind = getCheckIfTracked(C, Sym); in HandleUseZeroAlloc()
2530 void MallocChecker::HandleFunctionPtrFree(CheckerContext &C, SVal ArgVal, in HandleFunctionPtrFree()
2539 Optional<MallocChecker::CheckKind> CheckKind = getCheckIfTracked(Family); in HandleFunctionPtrFree()
2570 MallocChecker::ReallocMemAux(CheckerContext &C, const CallEvent &Call, in ReallocMemAux()
2678 ProgramStateRef MallocChecker::CallocMem(CheckerContext &C, in CallocMem()
2695 MallocChecker::LeakInfo MallocChecker::getAllocationSite(const ExplodedNode *N, in getAllocationSite()
2736 void MallocChecker::HandleLeak(SymbolRef Sym, ExplodedNode *N, in HandleLeak()
2750 Optional<MallocChecker::CheckKind> in HandleLeak()
2801 void MallocChecker::checkDeadSymbols(SymbolReaper &SymReaper, in checkDeadSymbols()
2862 void MallocChecker::checkPreCall(const CallEvent &Call, in checkPreCall()
2921 void MallocChecker::checkPreStmt(const ReturnStmt *S, in checkPreStmt()
2929 void MallocChecker::checkEndFunction(const ReturnStmt *S, in checkEndFunction()
2934 void MallocChecker::checkEscapeOnReturn(const ReturnStmt *S, in checkEscapeOnReturn()
2965 void MallocChecker::checkPostStmt(const BlockExpr *BE, in checkPostStmt()
3006 bool MallocChecker::suppressDeallocationsInSuspiciousContexts( in suppressDeallocationsInSuspiciousContexts()
3035 bool MallocChecker::checkUseAfterFree(SymbolRef Sym, CheckerContext &C, in checkUseAfterFree()
3046 void MallocChecker::checkUseZeroAllocated(SymbolRef Sym, CheckerContext &C, in checkUseZeroAllocated()
3059 bool MallocChecker::checkDoubleDelete(SymbolRef Sym, CheckerContext &C) const { in checkDoubleDelete()
3069 void MallocChecker::checkLocation(SVal l, bool isLoad, const Stmt *S, in checkLocation()
3080 ProgramStateRef MallocChecker::evalAssume(ProgramStateRef state, in evalAssume()
3124 bool MallocChecker::mayFreeAnyEscapedMemoryOrIsModeledExplicitly( in mayFreeAnyEscapedMemoryOrIsModeledExplicitly()
3283 ProgramStateRef MallocChecker::checkPointerEscape(ProgramStateRef State, in checkPointerEscape()
3291 ProgramStateRef MallocChecker::checkConstPointerEscape(ProgramStateRef State, in checkConstPointerEscape()
3305 ProgramStateRef MallocChecker::checkPointerEscapeAux( in checkPointerEscapeAux()
3335 bool MallocChecker::isArgZERO_SIZE_PTR(ProgramStateRef State, CheckerContext &C, in isArgZERO_SIZE_PTR()
3563 void MallocChecker::printState(raw_ostream &Out, ProgramStateRef State, in printState()
3573 Optional<MallocChecker::CheckKind> CheckKind = getCheckIfTracked(Family); in printState()
3604 MallocChecker *checker = mgr.getChecker<MallocChecker>(); in registerInnerPointerCheckerAux()
3605 checker->ChecksEnabled[MallocChecker::CK_InnerPointerChecker] = true; in registerInnerPointerCheckerAux()
3606 checker->CheckNames[MallocChecker::CK_InnerPointerChecker] = in registerInnerPointerCheckerAux()
3611 auto *checker = mgr.registerChecker<MallocChecker>(); in registerDynamicMemoryModeling()
3625 MallocChecker *checker = mgr.getChecker<MallocChecker>(); \
3626 checker->ChecksEnabled[MallocChecker::CK_##name] = true; \
3627 checker->CheckNames[MallocChecker::CK_##name] = \
3633 REGISTER_CHECKER(MallocChecker)