wkspace failed allocations with heap protection enabled

Matthew J Fletcher amimjf at gmail.com
Wed Apr 13 09:30:06 UTC 2022


Investigating the "Total number of failed allocations:" from the
wkspace cmd i see that;

    /* Statistics */

Are incremented when _Heap_Allocate_aligned_with_boundary fails, however it
seems this will routinely fail due to;

_Heap_Protection_free_all_delayed_blocks seemingly on purpose creating an
impossibly large allocation.

    uintptr_t large = 0
      - (uintptr_t) HEAP_BLOCK_HEADER_SIZE
      - (uintptr_t) HEAP_ALLOC_BONUS
      - (uintptr_t) 1;

    void *p = _Heap_Allocate( heap, large );

This makes it difficult to place a breakpoint on failed_allocs to
investigate true low memory situations with heap protection enabled.

Matthew J Fletcher

More information about the users mailing list