What about if the allocator actually *allocates* a larger chunk the first time? In that case, you *would* want to use h->chunk_size. Perhaps the user-defined allocator must guarantee that h->chunk_size and the initial allocation agree?