* [syzbot] [gfs2?] KMSAN: uninit-value in gfs2_quota_init (2) @ 2024-11-27 19:32 syzbot 2024-11-28 14:43 ` [syzbot] Re: KMSAN: uninit-value in gfs2_quota_init() syzbot 2024-11-29 8:41 ` syzbot 0 siblings, 2 replies; 5+ messages in thread From: syzbot @ 2024-11-27 19:32 UTC (permalink / raw) To: agruenba, gfs2, linux-kernel, syzkaller-bugs Hello, syzbot found the following issue on: HEAD commit: 9f16d5e6f220 Merge tag 'for-linus' of git://git.kernel.org.. git tree: upstream console+strace: https://syzkaller.appspot.com/x/log.txt?x=140fe530580000 kernel config: https://syzkaller.appspot.com/x/.config?x=ce1e2eda2213557 dashboard link: https://syzkaller.appspot.com/bug?extid=9fb37b567267511a9e11 compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 syz repro: https://syzkaller.appspot.com/x/repro.syz?x=120fe530580000 C reproducer: https://syzkaller.appspot.com/x/repro.c?x=119ae778580000 Downloadable assets: disk image: https://storage.googleapis.com/syzbot-assets/2fcdec73c0f3/disk-9f16d5e6.raw.xz vmlinux: https://storage.googleapis.com/syzbot-assets/d4dc8d1847e1/vmlinux-9f16d5e6.xz kernel image: https://storage.googleapis.com/syzbot-assets/db0e04822d2c/bzImage-9f16d5e6.xz mounted in repro: https://storage.googleapis.com/syzbot-assets/c42d45c3f3cb/mount_0.gz IMPORTANT: if you fix the issue, please add the following tag to the commit: Reported-by: syzbot+9fb37b567267511a9e11@syzkaller.appspotmail.com gfs2: fsid=syz:syz.0: first mount done, others may mount syz-executor205: attempt to access beyond end of device loop0: rw=12288, sector=2251799813685248, nr_sectors = 8 limit=32768 ===================================================== BUG: KMSAN: uninit-value in gfs2_metatype_check_i fs/gfs2/util.h:125 [inline] BUG: KMSAN: uninit-value in gfs2_quota_init+0x22c4/0x2950 fs/gfs2/quota.c:1432 gfs2_metatype_check_i fs/gfs2/util.h:125 [inline] gfs2_quota_init+0x22c4/0x2950 fs/gfs2/quota.c:1432 gfs2_make_fs_rw+0x4cf/0x6a0 fs/gfs2/super.c:159 gfs2_fill_super+0x43f5/0x45a0 fs/gfs2/ops_fstype.c:1274 get_tree_bdev_flags+0x6ec/0x910 fs/super.c:1636 get_tree_bdev+0x37/0x50 fs/super.c:1659 gfs2_get_tree+0x5c/0x340 fs/gfs2/ops_fstype.c:1330 vfs_get_tree+0xb1/0x5a0 fs/super.c:1814 do_new_mount+0x71f/0x15e0 fs/namespace.c:3507 path_mount+0x742/0x1f10 fs/namespace.c:3834 do_mount fs/namespace.c:3847 [inline] __do_sys_mount fs/namespace.c:4057 [inline] __se_sys_mount+0x722/0x810 fs/namespace.c:4034 __x64_sys_mount+0xe4/0x150 fs/namespace.c:4034 x64_sys_call+0x39bf/0x3c30 arch/x86/include/generated/asm/syscalls_64.h:166 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xcd/0x1e0 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f Uninit was created at: __alloc_pages_noprof+0x9a7/0xe00 mm/page_alloc.c:4774 alloc_pages_mpol_noprof+0x299/0x990 mm/mempolicy.c:2265 alloc_pages_noprof mm/mempolicy.c:2344 [inline] folio_alloc_noprof+0x1db/0x310 mm/mempolicy.c:2351 filemap_alloc_folio_noprof+0xa6/0x440 mm/filemap.c:1009 __filemap_get_folio+0xac4/0x1550 mm/filemap.c:1951 gfs2_getbuf+0x23f/0xcd0 fs/gfs2/meta_io.c:142 gfs2_meta_ra+0x17f/0x7b0 fs/gfs2/meta_io.c:532 gfs2_quota_init+0x78d/0x2950 fs/gfs2/quota.c:1429 gfs2_make_fs_rw+0x4cf/0x6a0 fs/gfs2/super.c:159 gfs2_fill_super+0x43f5/0x45a0 fs/gfs2/ops_fstype.c:1274 get_tree_bdev_flags+0x6ec/0x910 fs/super.c:1636 get_tree_bdev+0x37/0x50 fs/super.c:1659 gfs2_get_tree+0x5c/0x340 fs/gfs2/ops_fstype.c:1330 vfs_get_tree+0xb1/0x5a0 fs/super.c:1814 do_new_mount+0x71f/0x15e0 fs/namespace.c:3507 path_mount+0x742/0x1f10 fs/namespace.c:3834 do_mount fs/namespace.c:3847 [inline] __do_sys_mount fs/namespace.c:4057 [inline] __se_sys_mount+0x722/0x810 fs/namespace.c:4034 __x64_sys_mount+0xe4/0x150 fs/namespace.c:4034 x64_sys_call+0x39bf/0x3c30 arch/x86/include/generated/asm/syscalls_64.h:166 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xcd/0x1e0 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f CPU: 0 UID: 0 PID: 5797 Comm: syz-executor205 Not tainted 6.12.0-syzkaller-09073-g9f16d5e6f220 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 ===================================================== --- This report is generated by a bot. It may contain errors. See https://goo.gl/tpsmEJ for more information about syzbot. syzbot engineers can be reached at syzkaller@googlegroups.com. syzbot will keep track of this issue. See: https://goo.gl/tpsmEJ#status for how to communicate with syzbot. If the report is already addressed, let syzbot know by replying with: #syz fix: exact-commit-title If you want syzbot to run the reproducer, reply with: #syz test: git://repo/address.git branch-or-commit-hash If you attach or paste a git patch, syzbot will apply it before testing. If you want to overwrite report's subsystems, reply with: #syz set subsystems: new-subsystem (See the list of subsystem names on the web dashboard) If the report is a duplicate of another one, reply with: #syz dup: exact-subject-of-another-report If you want to undo deduplication, reply with: #syz undup ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [syzbot] Re: KMSAN: uninit-value in gfs2_quota_init() 2024-11-27 19:32 [syzbot] [gfs2?] KMSAN: uninit-value in gfs2_quota_init (2) syzbot @ 2024-11-28 14:43 ` syzbot 2024-11-29 8:41 ` syzbot 1 sibling, 0 replies; 5+ messages in thread From: syzbot @ 2024-11-28 14:43 UTC (permalink / raw) To: linux-kernel, syzkaller-bugs For archival purposes, forwarding an incoming command email to linux-kernel@vger.kernel.org, syzkaller-bugs@googlegroups.com. *** Subject: Re: KMSAN: uninit-value in gfs2_quota_init() Author: dmantipov@yandex.ru #syz test https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git b86545e02e8c22fb89218f29d381fa8e8b91d815 diff --git a/fs/gfs2/dir.c b/fs/gfs2/dir.c index dbf1aede744c..85736135bcf5 100644 --- a/fs/gfs2/dir.c +++ b/fs/gfs2/dir.c @@ -299,6 +299,10 @@ static int gfs2_dir_read_data(struct gfs2_inode *ip, __be64 *buf, goto fail; BUG_ON(extlen < 1); bh = gfs2_meta_ra(ip->i_gl, dblock, extlen); + if (IS_ERR(bh)) { + error = PTR_ERR(bh); + goto fail; + } } else { error = gfs2_meta_read(ip->i_gl, dblock, DIO_WAIT, 0, &bh); if (error) diff --git a/fs/gfs2/meta_io.c b/fs/gfs2/meta_io.c index fea3efcc2f93..789294f4bf6f 100644 --- a/fs/gfs2/meta_io.c +++ b/fs/gfs2/meta_io.c @@ -512,7 +512,7 @@ int gfs2_meta_buffer(struct gfs2_inode *ip, u32 mtype, u64 num, * @dblock: the starting disk block * @extlen: the number of blocks in the extent * - * returns: the first buffer in the extent + * returns: the first buffer in the extent or error number */ struct buffer_head *gfs2_meta_ra(struct gfs2_glock *gl, u64 dblock, u32 extlen) @@ -521,6 +521,7 @@ struct buffer_head *gfs2_meta_ra(struct gfs2_glock *gl, u64 dblock, u32 extlen) struct buffer_head *first_bh, *bh; u32 max_ra = gfs2_tune_get(sdp, gt_max_readahead) >> sdp->sd_sb.sb_bsize_shift; + int ret; BUG_ON(!extlen); @@ -530,10 +531,15 @@ struct buffer_head *gfs2_meta_ra(struct gfs2_glock *gl, u64 dblock, u32 extlen) extlen = max_ra; first_bh = gfs2_getbuf(gl, dblock, CREATE); + if (unlikely(!first_bh)) + return ERR_PTR(-EINVAL); if (buffer_uptodate(first_bh)) goto out; - bh_read_nowait(first_bh, REQ_META | REQ_PRIO); + + ret = bh_read(first_bh, REQ_META | REQ_PRIO); + if (unlikely(ret < 0)) + return ERR_PTR(ret); dblock++; extlen--; diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c index 72b48f6f5561..d919edfb8dda 100644 --- a/fs/gfs2/quota.c +++ b/fs/gfs2/quota.c @@ -1427,8 +1427,10 @@ int gfs2_quota_init(struct gfs2_sbd *sdp) } error = -EIO; bh = gfs2_meta_ra(ip->i_gl, dblock, extlen); - if (!bh) + if (IS_ERR(bh)) { + error = PTR_ERR(bh); goto fail; + } if (gfs2_metatype_check(sdp, bh, GFS2_METATYPE_QC)) goto fail_brelse; diff --git a/fs/gfs2/recovery.c b/fs/gfs2/recovery.c index f4fe7039f725..527353c36aa5 100644 --- a/fs/gfs2/recovery.c +++ b/fs/gfs2/recovery.c @@ -49,7 +49,7 @@ int gfs2_replay_read_block(struct gfs2_jdesc *jd, unsigned int blk, *bh = gfs2_meta_ra(gl, dblock, extlen); - return error; + return IS_ERR(*bh) ? PTR_ERR(*bh) : 0; } int gfs2_revoke_add(struct gfs2_jdesc *jd, u64 blkno, unsigned int where) ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [syzbot] Re: KMSAN: uninit-value in gfs2_quota_init() 2024-11-27 19:32 [syzbot] [gfs2?] KMSAN: uninit-value in gfs2_quota_init (2) syzbot 2024-11-28 14:43 ` [syzbot] Re: KMSAN: uninit-value in gfs2_quota_init() syzbot @ 2024-11-29 8:41 ` syzbot 1 sibling, 0 replies; 5+ messages in thread From: syzbot @ 2024-11-29 8:41 UTC (permalink / raw) To: linux-kernel, syzkaller-bugs For archival purposes, forwarding an incoming command email to linux-kernel@vger.kernel.org, syzkaller-bugs@googlegroups.com. *** Subject: Re: KMSAN: uninit-value in gfs2_quota_init() Author: dmantipov@yandex.ru #syz test https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 7af08b57bcb9ebf78675c50069c54125c0a8b795 diff --git a/fs/gfs2/dir.c b/fs/gfs2/dir.c index dbf1aede744c..85736135bcf5 100644 --- a/fs/gfs2/dir.c +++ b/fs/gfs2/dir.c @@ -299,6 +299,10 @@ static int gfs2_dir_read_data(struct gfs2_inode *ip, __be64 *buf, goto fail; BUG_ON(extlen < 1); bh = gfs2_meta_ra(ip->i_gl, dblock, extlen); + if (IS_ERR(bh)) { + error = PTR_ERR(bh); + goto fail; + } } else { error = gfs2_meta_read(ip->i_gl, dblock, DIO_WAIT, 0, &bh); if (error) diff --git a/fs/gfs2/meta_io.c b/fs/gfs2/meta_io.c index fea3efcc2f93..18957afed91a 100644 --- a/fs/gfs2/meta_io.c +++ b/fs/gfs2/meta_io.c @@ -532,7 +532,7 @@ struct buffer_head *gfs2_meta_ra(struct gfs2_glock *gl, u64 dblock, u32 extlen) first_bh = gfs2_getbuf(gl, dblock, CREATE); if (buffer_uptodate(first_bh)) - goto out; + return first_bh; bh_read_nowait(first_bh, REQ_META | REQ_PRIO); dblock++; @@ -546,11 +546,10 @@ struct buffer_head *gfs2_meta_ra(struct gfs2_glock *gl, u64 dblock, u32 extlen) dblock++; extlen--; if (!buffer_locked(first_bh) && buffer_uptodate(first_bh)) - goto out; + return first_bh; } wait_on_buffer(first_bh); -out: - return first_bh; + return buffer_uptodate(first_bh) ? first_bh : ERR_PTR(-EIO); } diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c index 72b48f6f5561..d919edfb8dda 100644 --- a/fs/gfs2/quota.c +++ b/fs/gfs2/quota.c @@ -1427,8 +1427,10 @@ int gfs2_quota_init(struct gfs2_sbd *sdp) } error = -EIO; bh = gfs2_meta_ra(ip->i_gl, dblock, extlen); - if (!bh) + if (IS_ERR(bh)) { + error = PTR_ERR(bh); goto fail; + } if (gfs2_metatype_check(sdp, bh, GFS2_METATYPE_QC)) goto fail_brelse; diff --git a/fs/gfs2/recovery.c b/fs/gfs2/recovery.c index f4fe7039f725..527353c36aa5 100644 --- a/fs/gfs2/recovery.c +++ b/fs/gfs2/recovery.c @@ -49,7 +49,7 @@ int gfs2_replay_read_block(struct gfs2_jdesc *jd, unsigned int blk, *bh = gfs2_meta_ra(gl, dblock, extlen); - return error; + return IS_ERR(*bh) ? PTR_ERR(*bh) : 0; } int gfs2_revoke_add(struct gfs2_jdesc *jd, u64 blkno, unsigned int where) ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <20241128144314.KVCl8%dmantipov@yandex.ru>]
* Re: [syzbot] [gfs2?] KMSAN: uninit-value in gfs2_quota_init (2) [not found] <20241128144314.KVCl8%dmantipov@yandex.ru> @ 2024-11-28 15:19 ` syzbot 0 siblings, 0 replies; 5+ messages in thread From: syzbot @ 2024-11-28 15:19 UTC (permalink / raw) To: dmantipov, linux-kernel, syzkaller-bugs Hello, syzbot has tested the proposed patch and the reproducer did not trigger any issue: Reported-by: syzbot+9fb37b567267511a9e11@syzkaller.appspotmail.com Tested-by: syzbot+9fb37b567267511a9e11@syzkaller.appspotmail.com Tested on: commit: b86545e0 Merge tag 'acpi-6.13-rc1-2' of git://git.kern.. git tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git console output: https://syzkaller.appspot.com/x/log.txt?x=16544f78580000 kernel config: https://syzkaller.appspot.com/x/.config?x=a4aa348d53e96cc1 dashboard link: https://syzkaller.appspot.com/bug?extid=9fb37b567267511a9e11 compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 patch: https://syzkaller.appspot.com/x/patch.diff?x=111463c0580000 Note: testing is done by a robot and is best-effort only. ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <20241129084122.3D4HV%dmantipov@yandex.ru>]
* Re: [syzbot] [gfs2?] KMSAN: uninit-value in gfs2_quota_init (2) [not found] <20241129084122.3D4HV%dmantipov@yandex.ru> @ 2024-11-29 9:10 ` syzbot 0 siblings, 0 replies; 5+ messages in thread From: syzbot @ 2024-11-29 9:10 UTC (permalink / raw) To: dmantipov, linux-kernel, syzkaller-bugs Hello, syzbot has tested the proposed patch and the reproducer did not trigger any issue: Reported-by: syzbot+9fb37b567267511a9e11@syzkaller.appspotmail.com Tested-by: syzbot+9fb37b567267511a9e11@syzkaller.appspotmail.com Tested on: commit: 7af08b57 Merge tag 'trace-v6.13-2' of git://git.kernel.. git tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git console output: https://syzkaller.appspot.com/x/log.txt?x=17c849e8580000 kernel config: https://syzkaller.appspot.com/x/.config?x=d66c9f9a88c492bd dashboard link: https://syzkaller.appspot.com/bug?extid=9fb37b567267511a9e11 compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 patch: https://syzkaller.appspot.com/x/patch.diff?x=143b100f980000 Note: testing is done by a robot and is best-effort only. ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-11-29 9:10 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-11-27 19:32 [syzbot] [gfs2?] KMSAN: uninit-value in gfs2_quota_init (2) syzbot
2024-11-28 14:43 ` [syzbot] Re: KMSAN: uninit-value in gfs2_quota_init() syzbot
2024-11-29 8:41 ` syzbot
[not found] <20241128144314.KVCl8%dmantipov@yandex.ru>
2024-11-28 15:19 ` [syzbot] [gfs2?] KMSAN: uninit-value in gfs2_quota_init (2) syzbot
[not found] <20241129084122.3D4HV%dmantipov@yandex.ru>
2024-11-29 9:10 ` syzbot
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®