diff --git a/src/kernel/core/heap.c b/src/kernel/core/heap.c index 41d3d91718..f8e8dbce55 100644 --- a/src/kernel/core/heap.c +++ b/src/kernel/core/heap.c @@ -374,8 +374,8 @@ free(void *address) bin = &bins[page[0].bin_index]; -// if((addr)address % bin->element_size != 0) -// panic("kfree: passed invalid pointer 0x%x! Supposed to be in bin for esize 0x%x\n", address, bin->element_size); + if (bin->element_size <= PAGE_SIZE && (addr)address % bin->element_size != 0) + panic("kfree: passed invalid pointer %p! Supposed to be in bin for esize 0x%x\n", address, bin->element_size); for (i = 0; i < bin->element_size / PAGE_SIZE; i++) { if (page[i].bin_index != page[0].bin_index)