When files are marked as EXT2_EXTENT_FLAGS_UNINIT there is a block on the disk but it has not been written to. dump reads this data anyway instead of including an all zeros block. This leads to incorrect files during restore.
Attached patch is built on top of the patches suggested for bug #174
I haven't investigated at all but this could possibly be the cause of #175
Testcase I was using to test with. This is not intended to be a "works anywhere" testcase. It will definitely need tweaking to work for anybody else (It requires root to run and will potentially trash filesystems so should be understood before running!)
I've just discovered #162 which this is a duplicate of.