#include "magic_buddy.h" #include #include #include #include #include #include void get_random(uint8_t *dst, size_t count) { int fd = open("/dev/urandom", O_RDONLY); assert(count == read(fd, dst, count)); close(fd); } void main() { struct buddy buddy; size_t region_size = 1024 * 1024; uint8_t magic[MAGIC_COOKIE_BYTES]; get_random(magic, MAGIC_COOKIE_BYTES); init_buddy(malloc(region_size), region_size, magic, &buddy); memset(magic, 0, sizeof(magic)); void *x = allocate(1024, &buddy); printf("Just allocated %p...\n", x); debug_buddy(&buddy); printf("Now liberating %p...\n", x); liberate(x, 1024, &buddy); debug_buddy(&buddy); }