From: Theodore Ts'o Date: Fri, 17 Dec 2010 00:34:24 +0000 (-0500) Subject: libext2fs: fix ref_offset callback with sparse files in ext2fs_block_iterate2() X-Git-Tag: v1.41.14~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=94ded6c16bdcc77b43caaa151bd7afa55c5d3cf1;p=thirdparty%2Fe2fsprogs.git libext2fs: fix ref_offset callback with sparse files in ext2fs_block_iterate2() Addresses-Sourceforge-Bug: 3081087 Reported-by: vmo@users.sourceforge.net Signed-off-by: "Theodore Ts'o" --- diff --git a/lib/ext2fs/block.c b/lib/ext2fs/block.c index 07f77e9b5..4054a07b3 100644 --- a/lib/ext2fs/block.c +++ b/lib/ext2fs/block.c @@ -104,7 +104,7 @@ static int block_iterate_ind(blk_t *ind_block, blk_t ref_block, } else { for (i = 0; i < limit; i++, ctx->bcount++, block_nr++) { if (*block_nr == 0) - continue; + goto skip_sparse; flags = (*ctx->func)(ctx->fs, block_nr, ctx->bcount, *ind_block, offset, ctx->priv_data); @@ -113,6 +113,7 @@ static int block_iterate_ind(blk_t *ind_block, blk_t ref_block, ret |= BLOCK_ABORT; break; } + skip_sparse: offset += sizeof(blk_t); } }