From: Sasha Levin <sashal@kernel.org> To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Chao Yu <yuchao0@huawei.com>, syzbot+0eac6f0bbd558fd866d7@syzkaller.appspotmail.com, Jaegeuk Kim <jaegeuk@kernel.org>, Sasha Levin <sashal@kernel.org>, linux-f2fs-devel@lists.sourceforge.net Subject: [PATCH AUTOSEL 4.19 05/60] f2fs: fix uninit-value in f2fs_lookup Date: Mon, 26 Oct 2020 20:03:20 -0400 [thread overview] Message-ID: <20201027000415.1026364-5-sashal@kernel.org> (raw) In-Reply-To: <20201027000415.1026364-1-sashal@kernel.org> From: Chao Yu <yuchao0@huawei.com> [ Upstream commit 6d7ab88a98c1b7a47c228f8ffb4f44d631eaf284 ] As syzbot reported: Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0x21c/0x280 lib/dump_stack.c:118 kmsan_report+0xf7/0x1e0 mm/kmsan/kmsan_report.c:122 __msan_warning+0x58/0xa0 mm/kmsan/kmsan_instr.c:219 f2fs_lookup+0xe05/0x1a80 fs/f2fs/namei.c:503 lookup_open fs/namei.c:3082 [inline] open_last_lookups fs/namei.c:3177 [inline] path_openat+0x2729/0x6a90 fs/namei.c:3365 do_filp_open+0x2b8/0x710 fs/namei.c:3395 do_sys_openat2+0xa88/0x1140 fs/open.c:1168 do_sys_open fs/open.c:1184 [inline] __do_compat_sys_openat fs/open.c:1242 [inline] __se_compat_sys_openat+0x2a4/0x310 fs/open.c:1240 __ia32_compat_sys_openat+0x56/0x70 fs/open.c:1240 do_syscall_32_irqs_on arch/x86/entry/common.c:80 [inline] __do_fast_syscall_32+0x129/0x180 arch/x86/entry/common.c:139 do_fast_syscall_32+0x6a/0xc0 arch/x86/entry/common.c:162 do_SYSENTER_32+0x73/0x90 arch/x86/entry/common.c:205 entry_SYSENTER_compat_after_hwframe+0x4d/0x5c In f2fs_lookup(), @res_page could be used before being initialized, because in __f2fs_find_entry(), once F2FS_I(dir)->i_current_depth was been fuzzed to zero, then @res_page will never be initialized, causing this kmsan warning, relocating @res_page initialization place to fix this bug. Reported-by: syzbot+0eac6f0bbd558fd866d7@syzkaller.appspotmail.com Signed-off-by: Chao Yu <yuchao0@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org> --- fs/f2fs/dir.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/fs/f2fs/dir.c b/fs/f2fs/dir.c index ebe19894884be..2cd85ce3e4502 100644 --- a/fs/f2fs/dir.c +++ b/fs/f2fs/dir.c @@ -208,16 +208,15 @@ struct f2fs_dir_entry *__f2fs_find_entry(struct inode *dir, unsigned int max_depth; unsigned int level; + *res_page = NULL; + if (f2fs_has_inline_dentry(dir)) { - *res_page = NULL; de = f2fs_find_in_inline_dir(dir, fname, res_page); goto out; } - if (npages == 0) { - *res_page = NULL; + if (npages == 0) goto out; - } max_depth = F2FS_I(dir)->i_current_depth; if (unlikely(max_depth > MAX_DIR_HASH_DEPTH)) { @@ -229,7 +228,6 @@ struct f2fs_dir_entry *__f2fs_find_entry(struct inode *dir, } for (level = 0; level < max_depth; level++) { - *res_page = NULL; de = find_in_level(dir, level, fname, res_page); if (de || IS_ERR(*res_page)) break; -- 2.25.1
WARNING: multiple messages have this Message-ID (diff)
From: Sasha Levin <sashal@kernel.org> To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Sasha Levin <sashal@kernel.org>, syzbot+0eac6f0bbd558fd866d7@syzkaller.appspotmail.com, linux-f2fs-devel@lists.sourceforge.net, Jaegeuk Kim <jaegeuk@kernel.org> Subject: [f2fs-dev] [PATCH AUTOSEL 4.19 05/60] f2fs: fix uninit-value in f2fs_lookup Date: Mon, 26 Oct 2020 20:03:20 -0400 [thread overview] Message-ID: <20201027000415.1026364-5-sashal@kernel.org> (raw) In-Reply-To: <20201027000415.1026364-1-sashal@kernel.org> From: Chao Yu <yuchao0@huawei.com> [ Upstream commit 6d7ab88a98c1b7a47c228f8ffb4f44d631eaf284 ] As syzbot reported: Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0x21c/0x280 lib/dump_stack.c:118 kmsan_report+0xf7/0x1e0 mm/kmsan/kmsan_report.c:122 __msan_warning+0x58/0xa0 mm/kmsan/kmsan_instr.c:219 f2fs_lookup+0xe05/0x1a80 fs/f2fs/namei.c:503 lookup_open fs/namei.c:3082 [inline] open_last_lookups fs/namei.c:3177 [inline] path_openat+0x2729/0x6a90 fs/namei.c:3365 do_filp_open+0x2b8/0x710 fs/namei.c:3395 do_sys_openat2+0xa88/0x1140 fs/open.c:1168 do_sys_open fs/open.c:1184 [inline] __do_compat_sys_openat fs/open.c:1242 [inline] __se_compat_sys_openat+0x2a4/0x310 fs/open.c:1240 __ia32_compat_sys_openat+0x56/0x70 fs/open.c:1240 do_syscall_32_irqs_on arch/x86/entry/common.c:80 [inline] __do_fast_syscall_32+0x129/0x180 arch/x86/entry/common.c:139 do_fast_syscall_32+0x6a/0xc0 arch/x86/entry/common.c:162 do_SYSENTER_32+0x73/0x90 arch/x86/entry/common.c:205 entry_SYSENTER_compat_after_hwframe+0x4d/0x5c In f2fs_lookup(), @res_page could be used before being initialized, because in __f2fs_find_entry(), once F2FS_I(dir)->i_current_depth was been fuzzed to zero, then @res_page will never be initialized, causing this kmsan warning, relocating @res_page initialization place to fix this bug. Reported-by: syzbot+0eac6f0bbd558fd866d7@syzkaller.appspotmail.com Signed-off-by: Chao Yu <yuchao0@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org> --- fs/f2fs/dir.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/fs/f2fs/dir.c b/fs/f2fs/dir.c index ebe19894884be..2cd85ce3e4502 100644 --- a/fs/f2fs/dir.c +++ b/fs/f2fs/dir.c @@ -208,16 +208,15 @@ struct f2fs_dir_entry *__f2fs_find_entry(struct inode *dir, unsigned int max_depth; unsigned int level; + *res_page = NULL; + if (f2fs_has_inline_dentry(dir)) { - *res_page = NULL; de = f2fs_find_in_inline_dir(dir, fname, res_page); goto out; } - if (npages == 0) { - *res_page = NULL; + if (npages == 0) goto out; - } max_depth = F2FS_I(dir)->i_current_depth; if (unlikely(max_depth > MAX_DIR_HASH_DEPTH)) { @@ -229,7 +228,6 @@ struct f2fs_dir_entry *__f2fs_find_entry(struct inode *dir, } for (level = 0; level < max_depth; level++) { - *res_page = NULL; de = find_in_level(dir, level, fname, res_page); if (de || IS_ERR(*res_page)) break; -- 2.25.1 _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
next prev parent reply other threads:[~2020-10-27 0:09 UTC|newest] Thread overview: 91+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-10-27 0:03 [PATCH AUTOSEL 4.19 01/60] powerpc/powernv/smp: Fix spurious DBG() warning Sasha Levin 2020-10-27 0:03 ` Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 02/60] powerpc: select ARCH_WANT_IRQS_OFF_ACTIVATE_MM Sasha Levin 2020-10-27 0:03 ` Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 03/60] sparc64: remove mm_cpumask clearing to fix kthread_use_mm race Sasha Levin 2020-10-27 0:03 ` Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 04/60] f2fs: add trace exit in exception path Sasha Levin 2020-10-27 0:03 ` [f2fs-dev] " Sasha Levin 2020-10-27 0:03 ` Sasha Levin [this message] 2020-10-27 0:03 ` [f2fs-dev] [PATCH AUTOSEL 4.19 05/60] f2fs: fix uninit-value in f2fs_lookup Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 06/60] f2fs: fix to check segment boundary during SIT page readahead Sasha Levin 2020-10-27 0:03 ` [f2fs-dev] " Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 07/60] um: change sigio_spinlock to a mutex Sasha Levin 2020-10-27 0:03 ` Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 08/60] MIPS: ftrace: Remove redundant #ifdef CONFIG_DYNAMIC_FTRACE Sasha Levin 2020-10-27 7:59 ` Sergei Shtylyov 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 09/60] ARM: 8997/2: hw_breakpoint: Handle inexact watchpoint addresses Sasha Levin 2020-10-27 0:03 ` Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 10/60] power: supply: bq27xxx: report "not charging" on all types Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 11/60] xfs: fix realtime bitmap/summary file truncation when growing rt volume Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 12/60] video: fbdev: pvr2fb: initialize variables Sasha Levin 2020-10-27 0:03 ` Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 13/60] ath10k: start recovery process when payload length exceeds max htc length for sdio Sasha Levin 2020-10-27 0:03 ` Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 14/60] ath10k: fix VHT NSS calculation when STBC is enabled Sasha Levin 2020-10-27 0:03 ` Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 15/60] drm/brige/megachips: Add checking if ge_b850v3_lvds_init() is working correctly Sasha Levin 2020-10-27 0:03 ` Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 16/60] media: videodev2.h: RGB BT2020 and HSV are always full range Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 17/60] media: platform: Improve queue set up flow for bug fixing Sasha Levin 2020-10-27 0:03 ` Sasha Levin 2020-10-27 0:03 ` Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 18/60] usb: typec: tcpm: During PR_SWAP, source caps should be sent only after tSwapSourceStart Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 19/60] media: tw5864: check status of tw5864_frameinterval_get Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 20/60] media: imx274: fix frame interval handling Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 21/60] mmc: via-sdmmc: Fix data race bug Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 22/60] drm/bridge/synopsys: dsi: add support for non-continuous HS clock Sasha Levin 2020-10-27 0:03 ` Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 23/60] arm64: topology: Stop using MPIDR for topology information Sasha Levin 2020-10-27 0:03 ` Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 24/60] printk: reduce LOG_BUF_SHIFT range for H8300 Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 25/60] ia64: kprobes: Use generic kretprobe trampoline handler Sasha Levin 2020-10-27 0:03 ` Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 26/60] kgdb: Make "kgdbcon" work properly with "kgdb_earlycon" Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 27/60] media: uvcvideo: Fix dereference of out-of-bound list iterator Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 28/60] riscv: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO Sasha Levin 2020-10-27 0:03 ` Sasha Levin 2020-11-06 5:26 ` Palmer Dabbelt 2020-11-06 5:26 ` Palmer Dabbelt 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 29/60] cpufreq: sti-cpufreq: add stih418 support Sasha Levin 2020-10-27 0:03 ` Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 30/60] USB: adutux: fix debugging Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 31/60] uio: free uio id after uio file node is freed Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 32/60] usb: xhci: omit duplicate actions when suspending a runtime suspended host Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 33/60] arm64/mm: return cpu_all_mask when node is NUMA_NO_NODE Sasha Levin 2020-10-27 0:03 ` Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 34/60] xfs: don't free rt blocks when we're doing a REMAP bunmapi call Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 35/60] ACPI: Add out of bounds and numa_off protections to pxm_to_node() Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 36/60] genirq: Add stub for set_handle_irq() when !GENERIC_IRQ_MULTI_HANDLER Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 37/60] dm: change max_io_len() to use blk_max_size_offset() Sasha Levin 2020-10-27 0:03 ` [dm-devel] " Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 38/60] drivers/net/wan/hdlc_fr: Correctly handle special skb->protocol values Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 39/60] bus/fsl_mc: Do not rely on caller to provide non NULL mc_io Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 40/60] power: supply: test_power: add missing newlines when printing parameters by sysfs Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 41/60] drm/amd/display: HDMI remote sink need mode validation for Linux Sasha Levin 2020-10-27 0:03 ` Sasha Levin 2020-10-27 0:03 ` Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 42/60] btrfs: fix replace of seed device Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 43/60] md/bitmap: md_bitmap_get_counter returns wrong blocks Sasha Levin 2020-10-27 0:03 ` [PATCH AUTOSEL 4.19 44/60] bnxt_en: Log unknown link speed appropriately Sasha Levin 2020-10-27 0:04 ` [PATCH AUTOSEL 4.19 45/60] rpmsg: glink: Use complete_all for open states Sasha Levin 2020-10-27 0:04 ` [PATCH AUTOSEL 4.19 46/60] clk: ti: clockdomain: fix static checker warning Sasha Levin 2020-10-27 0:04 ` [PATCH AUTOSEL 4.19 47/60] net: 9p: initialize sun_server.sun_path to have addr's value only when addr is valid Sasha Levin 2020-10-27 0:04 ` [PATCH AUTOSEL 4.19 48/60] drivers: watchdog: rdc321x_wdt: Fix race condition bugs Sasha Levin 2020-10-27 0:04 ` [PATCH AUTOSEL 4.19 49/60] ext4: Detect already used quota file early Sasha Levin 2020-10-27 0:04 ` [PATCH AUTOSEL 4.19 50/60] gfs2: add validation checks for size of superblock Sasha Levin 2020-10-27 0:04 ` [Cluster-devel] " Sasha Levin 2020-10-27 0:04 ` [PATCH AUTOSEL 4.19 51/60] cifs: handle -EINTR in cifs_setattr Sasha Levin 2020-10-27 0:04 ` [PATCH AUTOSEL 4.19 52/60] arm64: dts: renesas: ulcb: add full-pwr-cycle-in-suspend into eMMC nodes Sasha Levin 2020-10-27 0:04 ` [PATCH AUTOSEL 4.19 53/60] ARM: dts: omap4: Fix sgx clock rate for 4430 Sasha Levin 2020-10-27 0:04 ` [PATCH AUTOSEL 4.19 54/60] memory: emif: Remove bogus debugfs error handling Sasha Levin 2020-10-27 0:04 ` [PATCH AUTOSEL 4.19 55/60] ARM: dts: s5pv210: remove DMA controller bus node name to fix dtschema warnings Sasha Levin 2020-10-27 0:04 ` Sasha Levin 2020-10-27 0:04 ` [PATCH AUTOSEL 4.19 56/60] ARM: dts: s5pv210: move PMU node out of clock controller Sasha Levin 2020-10-27 0:04 ` Sasha Levin 2020-10-27 0:04 ` [PATCH AUTOSEL 4.19 57/60] ARM: dts: s5pv210: remove dedicated 'audio-subsystem' node Sasha Levin 2020-10-27 0:04 ` Sasha Levin 2020-10-27 0:04 ` [PATCH AUTOSEL 4.19 58/60] nbd: make the config put is called before the notifying the waiter Sasha Levin 2020-10-27 0:04 ` [PATCH AUTOSEL 4.19 59/60] sgl_alloc_order: fix memory leak Sasha Levin 2020-10-27 0:04 ` [PATCH AUTOSEL 4.19 60/60] nvme-rdma: fix crash when connect rejected Sasha Levin 2020-10-27 0:04 ` Sasha Levin
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20201027000415.1026364-5-sashal@kernel.org \ --to=sashal@kernel.org \ --cc=jaegeuk@kernel.org \ --cc=linux-f2fs-devel@lists.sourceforge.net \ --cc=linux-kernel@vger.kernel.org \ --cc=stable@vger.kernel.org \ --cc=syzbot+0eac6f0bbd558fd866d7@syzkaller.appspotmail.com \ --cc=yuchao0@huawei.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.