On Wed, Nov 27, 2019 at 02:44:15PM -0500, Theodore Y. Ts'o wrote:
On Wed, Nov 27, 2019 at 02:12:58PM +0100, Jan Kara wrote:
Function ext4_empty_dir() doesn't correctly handle directories with holes and crashes on bh->b_data dereference when bh is NULL....
Hi Jan,
Thanks for the patch.
However, it looks like we're still vulnerable to the first block of the directory being NULL?
@@ -2833,19 +2833,25 @@ bool ext4_empty_dir(struct inode *inode) return true; de = (struct ext4_dir_entry_2 *) bh->b_data;
^^^^^^^^^^^
Ah, never mind. Since we're calling ext4_read_dirblock() with DIRENT_HTREE, if bh is NULL, it will get caught earlier, and ext4_read_dirblock() will return ERR_PTR(-EFSCORRUPTED).
- Ted