ext3: ext3_bread usage audit
authorCarlos Maiolino <cmaiolino@redhat.com>
Wed, 3 Oct 2012 02:59:23 +0000 (23:59 -0300)
committerJan Kara <jack@suse.cz>
Tue, 9 Oct 2012 21:21:42 +0000 (23:21 +0200)
This is the ext3 version of the same patch applied to Ext4, where such goal is
to audit the usage of ext3_bread() due a possible misinterpretion of its return
value.

Focused on directory blocks, a NULL value returned from ext3_bread() means a
hole, which cannot exist into a directory inode. It can pass undetected after a
fix in an uninitialized error variable.

The (now) initialized variable into ext3_getblk() may lead to a zero'ed return
value of ext3_bread() to its callers, which can make the caller do not detect
the hole in the directory inode.

This patch creates a new wrapper function ext3_dir_bread() which checks for
holes properly, reports error, and returns EIO in that case.

Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
Signed-off-by: Jan Kara <jack@suse.cz>

No differences found