By using PacketGetFromAlloc our pool gets filled with packets with a PKT_ALLOC flag. This means they'll get freed instead of returned to the pool after use.

In PacketGetFromAlloc:
    p->flags |= PKT_ALLOC;