Lines Matching defs:stack

171   // If we don't use stack depot, we store the alloc/free stack traces
202 static void GetStackTraceFromId(u32 id, StackTrace *stack) {
207 stack->CopyFrom(trace, size);
210 void AsanChunkView::GetAllocStack(StackTrace *stack) {
211 GetStackTraceFromId(chunk_->alloc_context_id, stack);
214 void AsanChunkView::GetFreeStack(StackTrace *stack) {
215 GetStackTraceFromId(chunk_->free_context_id, stack);
283 static void *Allocate(uptr size, uptr alignment, StackTrace *stack,
288 CHECK(stack);
375 m->alloc_context_id = StackDepotPut(stack->trace, stack->size);
411 static void ReportInvalidFree(void *ptr, u8 chunk_state, StackTrace *stack) {
413 ReportDoubleFree((uptr)ptr, stack);
415 ReportFreeNotMalloced((uptr)ptr, stack);
419 void *ptr, StackTrace *stack) {
424 ReportInvalidFree(ptr, old_chunk_state, stack);
431 StackTrace *stack, AllocType alloc_type) {
435 ReportAllocTypeMismatch((uptr)ptr, stack,
443 m->free_context_id = StackDepotPut(stack->trace, stack->size);
467 static void Deallocate(void *ptr, StackTrace *stack, AllocType alloc_type) {
475 AtomicallySetQuarantineFlag(m, ptr, stack);
476 QuarantineChunk(m, ptr, stack, alloc_type);
479 static void *Reallocate(void *old_ptr, uptr new_size, StackTrace *stack) {
489 void *new_ptr = Allocate(new_size, 8, stack, FROM_MALLOC, true);
493 ReportInvalidFree(old_ptr, chunk_state, stack);
499 Deallocate(old_ptr, stack, FROM_MALLOC);
592 void *asan_memalign(uptr alignment, uptr size, StackTrace *stack,
594 return Allocate(size, alignment, stack, alloc_type, true);
597 void asan_free(void *ptr, StackTrace *stack, AllocType alloc_type) {
598 Deallocate(ptr, stack, alloc_type);
601 void *asan_malloc(uptr size, StackTrace *stack) {
602 return Allocate(size, 8, stack, FROM_MALLOC, true);
605 void *asan_calloc(uptr nmemb, uptr size, StackTrace *stack) {
608 void *ptr = Allocate(nmemb * size, 8, stack, FROM_MALLOC, false);
616 void *asan_realloc(void *p, uptr size, StackTrace *stack) {
618 return Allocate(size, 8, stack, FROM_MALLOC, true);
620 Deallocate(p, stack, FROM_MALLOC);
623 return Reallocate(p, size, stack);
626 void *asan_valloc(uptr size, StackTrace *stack) {
627 return Allocate(size, GetPageSizeCached(), stack, FROM_MALLOC, true);
630 void *asan_pvalloc(uptr size, StackTrace *stack) {
637 return Allocate(size, PageSize, stack, FROM_MALLOC, true);
641 StackTrace *stack) {
642 void *ptr = Allocate(size, alignment, stack, FROM_MALLOC, true);
653 ReportMallocUsableSizeNotOwned((uptr)ptr, &stack);
786 ReportSanitizerGetAllocatedSizeNotOwned(ptr, &stack);