On 32-bit platforms where the file system block size is 8k or greater, the calculation bpib*bpib*bpib* will overflow a 32-bit calculation, leading to a divide by zero error. Fix this. Thanks to Mikulas Patocka for pointing this out. Signed-off-by: "Theodore Ts'o" <tytso@xxxxxxx> --- misc/filefrag.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/misc/filefrag.c b/misc/filefrag.c index 11783fd..1611f90 100644 --- a/misc/filefrag.c +++ b/misc/filefrag.c @@ -341,7 +341,7 @@ static void frag_report(const char *filename) if (((i-EXT2_DIRECT-bpib) % (bpib*bpib)) == 0) last_block++; if (((i-EXT2_DIRECT-bpib-bpib*bpib) % - (bpib*bpib*bpib)) == 0) + (((__u64) bpib)*bpib*bpib)) == 0) last_block++; } rc = get_bmap(fd, i, &block); -- 1.6.5.216.g5288a.dirty -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html