diff --git a/utils/memory.c b/utils/memory.c index 0ba791ad..590be002 100644 --- a/utils/memory.c +++ b/utils/memory.c @@ -35,7 +35,10 @@ void *safemalloc(size_t factor1, size_t factor2, size_t addend) #ifdef MINEFIELD p = minefield_c_malloc(size); #elif defined ALLOCATION_ALIGNMENT - p = aligned_alloc(ALLOCATION_ALIGNMENT, size); + /* aligned_alloc requires the allocation size to be rounded up */ + p = aligned_alloc( + ALLOCATION_ALIGNMENT, + (size + ALLOCATION_ALIGNMENT - 1) & ~(ALLOCATION_ALIGNMENT-1)); #else p = malloc(size); #endif