use buff_alloc_grow extensively.