Lines Matching defs:stack

184 static void *MsanAllocate(BufferedStackTrace *stack, uptr size, uptr alignment,
191 GET_FATAL_STACK_TRACE_IF_EMPTY(stack);
192 ReportAllocationSizeTooBig(size, max_malloc_size, stack);
197 GET_FATAL_STACK_TRACE_IF_EMPTY(stack);
198 ReportRssLimitExceeded(stack);
214 GET_FATAL_STACK_TRACE_IF_EMPTY(stack);
215 ReportOutOfMemory(size, stack);
228 stack->tag = StackTrace::TAG_ALLOC;
229 Origin o = Origin::CreateHeapOrigin(stack);
238 void MsanDeallocate(BufferedStackTrace *stack, void *p) {
252 stack->tag = StackTrace::TAG_DEALLOC;
253 Origin o = Origin::CreateHeapOrigin(stack);
268 static void *MsanReallocate(BufferedStackTrace *stack, void *old_p,
278 stack->tag = StackTrace::TAG_ALLOC;
279 PoisonMemory((char *)old_p + old_size, new_size - old_size, stack);
285 void *new_p = MsanAllocate(stack, new_size, alignment, false /*zeroise*/);
287 CopyMemory(new_p, old_p, memcpy_size, stack);
288 MsanDeallocate(stack, old_p);
293 static void *MsanCalloc(BufferedStackTrace *stack, uptr nmemb, uptr size) {
297 GET_FATAL_STACK_TRACE_IF_EMPTY(stack);
298 ReportCallocOverflow(nmemb, size, stack);
300 return MsanAllocate(stack, nmemb * size, sizeof(u64), true);
330 void *msan_malloc(uptr size, BufferedStackTrace *stack) {
331 return SetErrnoOnNull(MsanAllocate(stack, size, sizeof(u64), false));
334 void *msan_calloc(uptr nmemb, uptr size, BufferedStackTrace *stack) {
335 return SetErrnoOnNull(MsanCalloc(stack, nmemb, size));
338 void *msan_realloc(void *ptr, uptr size, BufferedStackTrace *stack) {
340 return SetErrnoOnNull(MsanAllocate(stack, size, sizeof(u64), false));
342 MsanDeallocate(stack, ptr);
345 return SetErrnoOnNull(MsanReallocate(stack, ptr, size, sizeof(u64)));
349 BufferedStackTrace *stack) {
354 GET_FATAL_STACK_TRACE_IF_EMPTY(stack);
355 ReportReallocArrayOverflow(nmemb, size, stack);
357 return msan_realloc(ptr, nmemb * size, stack);
360 void *msan_valloc(uptr size, BufferedStackTrace *stack) {
361 return SetErrnoOnNull(MsanAllocate(stack, size, GetPageSizeCached(), false));
364 void *msan_pvalloc(uptr size, BufferedStackTrace *stack) {
370 GET_FATAL_STACK_TRACE_IF_EMPTY(stack);
371 ReportPvallocOverflow(size, stack);
375 return SetErrnoOnNull(MsanAllocate(stack, size, PageSize, false));
378 void *msan_aligned_alloc(uptr alignment, uptr size, BufferedStackTrace *stack) {
383 GET_FATAL_STACK_TRACE_IF_EMPTY(stack);
384 ReportInvalidAlignedAllocAlignment(size, alignment, stack);
386 return SetErrnoOnNull(MsanAllocate(stack, size, alignment, false));
389 void *msan_memalign(uptr alignment, uptr size, BufferedStackTrace *stack) {
394 GET_FATAL_STACK_TRACE_IF_EMPTY(stack);
395 ReportInvalidAllocationAlignment(alignment, stack);
397 return SetErrnoOnNull(MsanAllocate(stack, size, alignment, false));
401 BufferedStackTrace *stack) {
405 GET_FATAL_STACK_TRACE_IF_EMPTY(stack);
406 ReportInvalidPosixMemalignAlignment(alignment, stack);
408 void *ptr = MsanAllocate(stack, size, alignment, false);