]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ext4: no need to continue when the number of entries is 1
authorEdward Adam Davis <eadavis@qq.com>
Mon, 1 Jul 2024 14:25:03 +0000 (22:25 +0800)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 27 Aug 2024 01:20:48 +0000 (21:20 -0400)
Fixes: ac27a0ec112a ("[PATCH] ext4: initial copy of files from ext3")
Reported-by: syzbot+ae688d469e36fb5138d0@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=ae688d469e36fb5138d0
Signed-off-by: Edward Adam Davis <eadavis@qq.com>
Reported-and-tested-by: syzbot+ae688d469e36fb5138d0@syzkaller.appspotmail.com
Link: https://patch.msgid.link/tencent_BE7AEE6C7C2D216CB8949CE8E6EE7ECC2C0A@qq.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Cc: stable@kernel.org
fs/ext4/namei.c

index 6a95713f9193b1c979b9357900515032375bcbee..1de1c1b460a768d45dd61a013f1d54606fe9e86e 100644 (file)
@@ -1999,7 +1999,7 @@ static struct ext4_dir_entry_2 *do_split(handle_t *handle, struct inode *dir,
                split = count/2;
 
        hash2 = map[split].hash;
-       continued = hash2 == map[split - 1].hash;
+       continued = split > 0 ? hash2 == map[split - 1].hash : 0;
        dxtrace(printk(KERN_INFO "Split block %lu at %x, %i/%i\n",
                        (unsigned long)dx_get_block(frame->at),
                                        hash2, split, count-split));