Why not replace `xmalloc` and the rest of the block with `new_start = xrealloc(new_start,new_start_len);`?