The function had an error, that it assumed its smallest operational block is allocation unit.
In reality, the smallest block is min_release_size, that is a max(allocation size, checksum size).
In some wierd cases single min_release_size block could be composed of *disjointed*
allocation on the disk. This is something that bitmap allocator does often.
Blob::copy_extents could not handle it properly, but luckily, it asserted when faced with that data.
New fixed and improved version is able to handle this case too.