• Carlos Maiolino's avatar
    ext3: ext3_bread usage audit · c3d59ad6
    Carlos Maiolino authored
    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: default avatarCarlos Maiolino <cmaiolino@redhat.com>
    Signed-off-by: default avatarJan Kara <jack@suse.cz>
    c3d59ad6
namei.c 68.4 KB