fixed bug where data offset was not subtracted from block size
which produced blocks that were past the end of the virtual
block