From: Eryu Guan Date: Thu, 14 May 2015 23:00:45 +0000 (-0400) Subject: ext4: check for zero length extent explicitly X-Git-Tag: firefly_0821_release~4029 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=bcb0c8685301f1ff92f094d0bbd4eea4c7252b16;p=firefly-linux-kernel-4.4.55.git ext4: check for zero length extent explicitly The following commit introduced a bug when checking for zero length extent 5946d08 ext4: check for overlapping extents in ext4_valid_extent_entries() Zero length extent could pass the check if lblock is zero. Adding the explicit check for zero length back. Signed-off-by: Eryu Guan Signed-off-by: Theodore Ts'o Cc: stable@vger.kernel.org --- diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index 7fbd1c5b74af..df633bb25909 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c @@ -363,7 +363,7 @@ static int ext4_valid_extent(struct inode *inode, struct ext4_extent *ext) ext4_lblk_t lblock = le32_to_cpu(ext->ee_block); ext4_lblk_t last = lblock + len - 1; - if (lblock > last) + if (len == 0 || lblock > last) return 0; return ext4_data_block_valid(EXT4_SB(inode->i_sb), block, len); }