Re: [PATCH]Fix potential Divide by Zero error in ext2_get_inode()

From: B. N. Poornima
Date: Thu May 14 2009 - 07:37:55 EST


Andrew Morton wrote:
On Wed, 13 May 2009 13:51:01 +0530
"B. N. Poornima" <poornima@xxxxxxxxxx> wrote:

Found a line of code in ext2_get_inode function of inode.c in the ext2 filesystem that has the potential of hitting the divide by 0 error.
*************************************************
block_group = (ino - 1) / EXT2_INODES_PER_GROUP(sb);
*************************************************
There is no checking done here to verify if EXT2_INODES_PER_GROUP() returns 0. This could result in divide by zero error and panic the system.
Below is the patch, built against 2.6.30-rc5, to correct the same:

EXT2_INODES_PER_GROUP() cannot return zero. See ext2_fill_super():

if (sbi->s_inodes_per_block == 0 || sbi->s_inodes_per_group == 0)
goto cantfind_ext2;

Andrew,
Thanks for pointing that out!

Regards,
Poornima.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/