After alloc_block: After strcpy: Pool 1, block 0: 3 bytes at ADDR, tag: "p" OVERRUN BLOCK After ip[-1] = 0: Pool 1, block 0: 3 bytes at ADDR, tag: "p" UNDERRUN and OVERRUN BLOCK Pools: --- Pool 1: 10000 blocks of 1024 bytes Block 0: 3 bytes at ADDR, tag: "p" UNDERRUN and OVERRUN BLOCK Total: 1 allocated blocks, 3 allocated bytes --- Total for all pools: 1 allocated blocks, 3 allocated bytes ready to free... free_block(ADDR, p): UNDERRUN and OVERRUN BLOCK