Re: [BUG]Missing i_sb NULL pointer check in destroy_inode()

From: Christoph Hellwig
Date: Tue Nov 25 2003 - 03:37:59 EST


On Mon, Nov 24, 2003 at 11:00:38AM -0800, Mingming Cao wrote:
> Hello, Andrew, Marcelo,
>
> destroy_inode() dereferences inode->i_sb without checking if it is NULL.
> This is inconsistent with its caller: iput() and clear_inode(), both of
> which check inode->i_sb before dereferencing it. Since iput() calls
> destroy_inode() after calling file system's .clear_inode method(via
> clear_inode()), some file systems might choose to clear the i_sb in the
> .clear_inode super block operation. This results in a crash in
> destroy_inode().
>
> This issue exists in both 2.6, 2.4 and 2.4 kernel. A simple fix against
> 2.6.0-test9 is included below. 2.4 based fix should be very similar to
> this one. Please take a look and consider include it.

inode->i_sb can't be NULL. We should remove all those checks.

-
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/