Loading...
#include <stdint.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <assert.h> #include <malloc/malloc.h> extern malloc_zone_t **malloc_zones; uint8_t data[256]; int main(int argc, const char *argv[]) { const char *pgm = getenv("MallocProbGuard"); const char *bypass_pgm_check = getenv("GuardedRangeTestBypassPGMCheck"); uintptr_t addr; assert(argc == 2); assert(pgm || bypass_pgm_check); if (strcmp(argv[1], "zone") == 0) { addr = (uintptr_t)malloc_zones[0]; } else if (strcmp(argv[1], "array") == 0) { addr = (uintptr_t)malloc_zones; } else { assert(false && "Argument 1 should be either 'zone' or 'array'"); } printf("0x%lx\n", (uintptr_t)data - addr); return 0; } |