Lines Matching refs:stack
55 u32 tid, u32 stack) { in AtomicContextStore() argument
58 context += stack; in AtomicContextStore()
63 u32 &tid, u32 &stack) { in AtomicContextLoad() argument
65 stack = context; in AtomicContextLoad()
119 void SetAllocContext(u32 tid, u32 stack) { in SetAllocContext() argument
120 AtomicContextStore(&alloc_context_id, tid, stack); in SetAllocContext()
123 void GetAllocContext(u32 &tid, u32 &stack) const { in GetAllocContext()
124 AtomicContextLoad(&alloc_context_id, tid, stack); in GetAllocContext()
132 void SetFreeContext(u32 tid, u32 stack) { in SetFreeContext() argument
133 AtomicContextStore(&free_context_id, tid, stack); in SetFreeContext()
136 void GetFreeContext(u32 &tid, u32 &stack) const { in GetFreeContext()
137 AtomicContextLoad(&free_context_id, tid, stack); in GetFreeContext()
194 QuarantineCallback(AllocatorCache *cache, BufferedStackTrace *stack) in QuarantineCallback()
196 stack_(stack) { in QuarantineCallback()
461 bool UpdateAllocationStack(uptr addr, BufferedStackTrace *stack) { in UpdateAllocationStack()
468 m->SetAllocContext(t ? t->tid() : kMainTid, StackDepotPut(*stack)); in UpdateAllocationStack()
473 void *Allocate(uptr size, uptr alignment, BufferedStackTrace *stack, in Allocate()
480 ReportRssLimitExceeded(stack); in Allocate()
483 CHECK(stack); in Allocate()
519 ReportAllocationSizeTooBig(size, needed_size, malloc_limit, stack); in Allocate()
536 ReportOutOfMemory(size, stack); in Allocate()
562 m->SetAllocContext(t ? t->tid() : kMainTid, StackDepotPut(*stack)); in Allocate()
607 BufferedStackTrace *stack) { in AtomicallySetQuarantineFlagIfAllocated()
613 ReportInvalidFree(ptr, old_chunk_state, stack); in AtomicallySetQuarantineFlagIfAllocated()
625 void QuarantineChunk(AsanChunk *m, void *ptr, BufferedStackTrace *stack) { in QuarantineChunk()
629 m->SetFreeContext(t ? t->tid() : 0, StackDepotPut(*stack)); in QuarantineChunk()
654 quarantine.Put(GetQuarantineCache(ms), QuarantineCallback(ac, stack), m, in QuarantineChunk()
659 quarantine.Put(&fallback_quarantine_cache, QuarantineCallback(ac, stack), in QuarantineChunk()
665 BufferedStackTrace *stack, AllocType alloc_type) { in Deallocate()
677 ReportFreeNotMalloced(p, stack); in Deallocate()
685 if (!AtomicallySetQuarantineFlagIfAllocated(m, ptr, stack)) return; in Deallocate()
689 ReportAllocTypeMismatch((uptr)ptr, stack, (AllocType)m->alloc_type, in Deallocate()
698 ReportNewDeleteTypeMismatch(p, delete_size, delete_alignment, stack); in Deallocate()
702 QuarantineChunk(m, ptr, stack); in Deallocate()
705 void *Reallocate(void *old_ptr, uptr new_size, BufferedStackTrace *stack) { in Reallocate()
715 void *new_ptr = Allocate(new_size, 8, stack, FROM_MALLOC, true); in Reallocate()
719 ReportInvalidFree(old_ptr, chunk_state, stack); in Reallocate()
725 Deallocate(old_ptr, 0, 0, stack, FROM_MALLOC); in Reallocate()
730 void *Calloc(uptr nmemb, uptr size, BufferedStackTrace *stack) { in Calloc()
734 ReportCallocOverflow(nmemb, size, stack); in Calloc()
736 void *ptr = Allocate(nmemb * size, 8, stack, FROM_MALLOC, false); in Calloc()
744 void ReportInvalidFree(void *ptr, u8 chunk_state, BufferedStackTrace *stack) { in ReportInvalidFree()
746 ReportDoubleFree((uptr)ptr, stack); in ReportInvalidFree()
748 ReportFreeNotMalloced((uptr)ptr, stack); in ReportInvalidFree()
751 void CommitBack(AsanThreadLocalMallocStorage *ms, BufferedStackTrace *stack) { in CommitBack()
753 quarantine.Drain(GetQuarantineCache(ms), QuarantineCallback(ac, stack)); in CommitBack()
820 void Purge(BufferedStackTrace *stack) { in Purge()
826 stack)); in Purge()
832 stack)); in Purge()
881 u32 stack = 0; in AllocTid() local
882 chunk_->GetAllocContext(tid, stack); in AllocTid()
890 u32 stack = 0; in FreeTid() local
891 chunk_->GetFreeContext(tid, stack); in FreeTid()
901 u32 stack = 0; in GetAllocStackId() local
902 chunk_->GetAllocContext(tid, stack); in GetAllocStackId()
903 return stack; in GetAllocStackId()
910 u32 stack = 0; in GetFreeStackId() local
911 chunk_->GetFreeContext(tid, stack); in GetFreeStackId()
912 return stack; in GetFreeStackId()
936 instance.CommitBack(this, &stack); in CommitBack()
943 void asan_free(void *ptr, BufferedStackTrace *stack, AllocType alloc_type) { in asan_free() argument
944 instance.Deallocate(ptr, 0, 0, stack, alloc_type); in asan_free()
948 BufferedStackTrace *stack, AllocType alloc_type) { in asan_delete() argument
949 instance.Deallocate(ptr, size, alignment, stack, alloc_type); in asan_delete()
952 void *asan_malloc(uptr size, BufferedStackTrace *stack) { in asan_malloc() argument
953 return SetErrnoOnNull(instance.Allocate(size, 8, stack, FROM_MALLOC, true)); in asan_malloc()
956 void *asan_calloc(uptr nmemb, uptr size, BufferedStackTrace *stack) { in asan_calloc() argument
957 return SetErrnoOnNull(instance.Calloc(nmemb, size, stack)); in asan_calloc()
961 BufferedStackTrace *stack) { in asan_reallocarray() argument
966 ReportReallocArrayOverflow(nmemb, size, stack); in asan_reallocarray()
968 return asan_realloc(p, nmemb * size, stack); in asan_reallocarray()
971 void *asan_realloc(void *p, uptr size, BufferedStackTrace *stack) { in asan_realloc() argument
973 return SetErrnoOnNull(instance.Allocate(size, 8, stack, FROM_MALLOC, true)); in asan_realloc()
976 instance.Deallocate(p, 0, 0, stack, FROM_MALLOC); in asan_realloc()
982 return SetErrnoOnNull(instance.Reallocate(p, size, stack)); in asan_realloc()
985 void *asan_valloc(uptr size, BufferedStackTrace *stack) { in asan_valloc() argument
987 instance.Allocate(size, GetPageSizeCached(), stack, FROM_MALLOC, true)); in asan_valloc()
990 void *asan_pvalloc(uptr size, BufferedStackTrace *stack) { in asan_pvalloc() argument
996 ReportPvallocOverflow(size, stack); in asan_pvalloc()
1001 instance.Allocate(size, PageSize, stack, FROM_MALLOC, true)); in asan_pvalloc()
1004 void *asan_memalign(uptr alignment, uptr size, BufferedStackTrace *stack, in asan_memalign() argument
1010 ReportInvalidAllocationAlignment(alignment, stack); in asan_memalign()
1013 instance.Allocate(size, alignment, stack, alloc_type, true)); in asan_memalign()
1016 void *asan_aligned_alloc(uptr alignment, uptr size, BufferedStackTrace *stack) { in asan_aligned_alloc() argument
1021 ReportInvalidAlignedAllocAlignment(size, alignment, stack); in asan_aligned_alloc()
1024 instance.Allocate(size, alignment, stack, FROM_MALLOC, true)); in asan_aligned_alloc()
1028 BufferedStackTrace *stack) { in asan_posix_memalign() argument
1032 ReportInvalidPosixMemalignAlignment(alignment, stack); in asan_posix_memalign()
1034 void *ptr = instance.Allocate(size, alignment, stack, FROM_MALLOC, true); in asan_posix_memalign()
1048 ReportMallocUsableSizeNotOwned((uptr)ptr, &stack); in asan_malloc_usable_size()
1134 u32 stack = 0; in stack_trace_id() local
1135 m->GetAllocContext(tid, stack); in stack_trace_id()
1136 return stack; in stack_trace_id()
1181 ReportSanitizerGetAllocatedSizeNotOwned(ptr, &stack); in __sanitizer_get_allocated_size()
1188 instance.Purge(&stack); in __sanitizer_purge_allocator()
1193 return instance.UpdateAllocationStack((uptr)addr, &stack); in __asan_update_allocation_context()