Re: [syzbot] [arm-msm?] [net?] memory leak in radix_tree_insert (2)

From: syzbot
Date: Sat Dec 09 2023 - 20:26:19 EST


Hello,

syzbot has tested the proposed patch but the reproducer is still triggering an issue:
memory leak in radix_tree_insert

BUG: memory leak
unreferenced object 0xffff88810e5afda8 (size 576):
comm "syz-executor.0", pid 5489, jiffies 4294944355 (age 12.710s)
hex dump (first 32 bytes):
3c 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 <...............
70 ee 73 1b 81 88 ff ff c0 fd 5a 0e 81 88 ff ff p.s.......Z.....
backtrace:
[<ffffffff81631398>] kmemleak_alloc_recursive include/linux/kmemleak.h:42 [inline]
[<ffffffff81631398>] slab_post_alloc_hook mm/slab.h:766 [inline]
[<ffffffff81631398>] slab_alloc_node mm/slub.c:3478 [inline]
[<ffffffff81631398>] slab_alloc mm/slub.c:3486 [inline]
[<ffffffff81631398>] __kmem_cache_alloc_lru mm/slub.c:3493 [inline]
[<ffffffff81631398>] kmem_cache_alloc+0x298/0x430 mm/slub.c:3502
[<ffffffff84b5094c>] radix_tree_node_alloc.constprop.0+0x7c/0x1a0 lib/radix-tree.c:276
[<ffffffff84b524cf>] __radix_tree_create lib/radix-tree.c:624 [inline]
[<ffffffff84b524cf>] radix_tree_insert+0x14f/0x360 lib/radix-tree.c:712
[<ffffffff84ae108c>] qrtr_tx_wait net/qrtr/af_qrtr.c:277 [inline]
[<ffffffff84ae108c>] qrtr_node_enqueue+0x58c/0x660 net/qrtr/af_qrtr.c:354
[<ffffffff84ae2746>] qrtr_bcast_enqueue+0x66/0xd0 net/qrtr/af_qrtr.c:897
[<ffffffff84ae3322>] qrtr_sendmsg+0x232/0x450 net/qrtr/af_qrtr.c:998
[<ffffffff83ec3c42>] sock_sendmsg_nosec net/socket.c:730 [inline]
[<ffffffff83ec3c42>] __sock_sendmsg+0x52/0xa0 net/socket.c:745
[<ffffffff83ec3d8b>] sock_write_iter+0xfb/0x180 net/socket.c:1158
[<ffffffff816961a7>] call_write_iter include/linux/fs.h:2020 [inline]
[<ffffffff816961a7>] new_sync_write fs/read_write.c:491 [inline]
[<ffffffff816961a7>] vfs_write+0x327/0x590 fs/read_write.c:584
[<ffffffff816966fb>] ksys_write+0x13b/0x170 fs/read_write.c:637
[<ffffffff84b6ddcf>] do_syscall_x64 arch/x86/entry/common.c:51 [inline]
[<ffffffff84b6ddcf>] do_syscall_64+0x3f/0x110 arch/x86/entry/common.c:82
[<ffffffff84c0008b>] entry_SYSCALL_64_after_hwframe+0x63/0x6b

BUG: memory leak
unreferenced object 0xffff88810e5ec248 (size 576):
comm "syz-executor.0", pid 5489, jiffies 4294944355 (age 12.710s)
hex dump (first 32 bytes):
36 0f 01 00 00 00 00 00 a8 fd 5a 0e 81 88 ff ff 6.........Z.....
70 ee 73 1b 81 88 ff ff 60 c2 5e 0e 81 88 ff ff p.s.....`.^.....
backtrace:
[<ffffffff81631398>] kmemleak_alloc_recursive include/linux/kmemleak.h:42 [inline]
[<ffffffff81631398>] slab_post_alloc_hook mm/slab.h:766 [inline]
[<ffffffff81631398>] slab_alloc_node mm/slub.c:3478 [inline]
[<ffffffff81631398>] slab_alloc mm/slub.c:3486 [inline]
[<ffffffff81631398>] __kmem_cache_alloc_lru mm/slub.c:3493 [inline]
[<ffffffff81631398>] kmem_cache_alloc+0x298/0x430 mm/slub.c:3502
[<ffffffff84b5094c>] radix_tree_node_alloc.constprop.0+0x7c/0x1a0 lib/radix-tree.c:276
[<ffffffff84b524cf>] __radix_tree_create lib/radix-tree.c:624 [inline]
[<ffffffff84b524cf>] radix_tree_insert+0x14f/0x360 lib/radix-tree.c:712
[<ffffffff84ae108c>] qrtr_tx_wait net/qrtr/af_qrtr.c:277 [inline]
[<ffffffff84ae108c>] qrtr_node_enqueue+0x58c/0x660 net/qrtr/af_qrtr.c:354
[<ffffffff84ae2746>] qrtr_bcast_enqueue+0x66/0xd0 net/qrtr/af_qrtr.c:897
[<ffffffff84ae3322>] qrtr_sendmsg+0x232/0x450 net/qrtr/af_qrtr.c:998
[<ffffffff83ec3c42>] sock_sendmsg_nosec net/socket.c:730 [inline]
[<ffffffff83ec3c42>] __sock_sendmsg+0x52/0xa0 net/socket.c:745
[<ffffffff83ec3d8b>] sock_write_iter+0xfb/0x180 net/socket.c:1158
[<ffffffff816961a7>] call_write_iter include/linux/fs.h:2020 [inline]
[<ffffffff816961a7>] new_sync_write fs/read_write.c:491 [inline]
[<ffffffff816961a7>] vfs_write+0x327/0x590 fs/read_write.c:584
[<ffffffff816966fb>] ksys_write+0x13b/0x170 fs/read_write.c:637
[<ffffffff84b6ddcf>] do_syscall_x64 arch/x86/entry/common.c:51 [inline]
[<ffffffff84b6ddcf>] do_syscall_64+0x3f/0x110 arch/x86/entry/common.c:82
[<ffffffff84c0008b>] entry_SYSCALL_64_after_hwframe+0x63/0x6b

BUG: memory leak
unreferenced object 0xffff88810e635488 (size 576):
comm "syz-executor.0", pid 5489, jiffies 4294944355 (age 12.710s)
hex dump (first 32 bytes):
30 3f 01 00 00 00 00 00 48 c2 5e 0e 81 88 ff ff 0?......H.^.....
70 ee 73 1b 81 88 ff ff a0 54 63 0e 81 88 ff ff p.s......Tc.....
backtrace:
[<ffffffff81631398>] kmemleak_alloc_recursive include/linux/kmemleak.h:42 [inline]
[<ffffffff81631398>] slab_post_alloc_hook mm/slab.h:766 [inline]
[<ffffffff81631398>] slab_alloc_node mm/slub.c:3478 [inline]
[<ffffffff81631398>] slab_alloc mm/slub.c:3486 [inline]
[<ffffffff81631398>] __kmem_cache_alloc_lru mm/slub.c:3493 [inline]
[<ffffffff81631398>] kmem_cache_alloc+0x298/0x430 mm/slub.c:3502
[<ffffffff84b5094c>] radix_tree_node_alloc.constprop.0+0x7c/0x1a0 lib/radix-tree.c:276
[<ffffffff84b524cf>] __radix_tree_create lib/radix-tree.c:624 [inline]
[<ffffffff84b524cf>] radix_tree_insert+0x14f/0x360 lib/radix-tree.c:712
[<ffffffff84ae108c>] qrtr_tx_wait net/qrtr/af_qrtr.c:277 [inline]
[<ffffffff84ae108c>] qrtr_node_enqueue+0x58c/0x660 net/qrtr/af_qrtr.c:354
[<ffffffff84ae2746>] qrtr_bcast_enqueue+0x66/0xd0 net/qrtr/af_qrtr.c:897
[<ffffffff84ae3322>] qrtr_sendmsg+0x232/0x450 net/qrtr/af_qrtr.c:998
[<ffffffff83ec3c42>] sock_sendmsg_nosec net/socket.c:730 [inline]
[<ffffffff83ec3c42>] __sock_sendmsg+0x52/0xa0 net/socket.c:745
[<ffffffff83ec3d8b>] sock_write_iter+0xfb/0x180 net/socket.c:1158
[<ffffffff816961a7>] call_write_iter include/linux/fs.h:2020 [inline]
[<ffffffff816961a7>] new_sync_write fs/read_write.c:491 [inline]
[<ffffffff816961a7>] vfs_write+0x327/0x590 fs/read_write.c:584
[<ffffffff816966fb>] ksys_write+0x13b/0x170 fs/read_write.c:637
[<ffffffff84b6ddcf>] do_syscall_x64 arch/x86/entry/common.c:51 [inline]
[<ffffffff84b6ddcf>] do_syscall_64+0x3f/0x110 arch/x86/entry/common.c:82
[<ffffffff84c0008b>] entry_SYSCALL_64_after_hwframe+0x63/0x6b

BUG: memory leak
unreferenced object 0xffff88810e4fa000 (size 576):
comm "syz-executor.0", pid 5489, jiffies 4294944355 (age 12.710s)
hex dump (first 32 bytes):
2a 3f 00 00 00 00 00 00 88 54 63 0e 81 88 ff ff *?.......Tc.....
70 ee 73 1b 81 88 ff ff 18 a0 4f 0e 81 88 ff ff p.s.......O.....
backtrace:
[<ffffffff81631398>] kmemleak_alloc_recursive include/linux/kmemleak.h:42 [inline]
[<ffffffff81631398>] slab_post_alloc_hook mm/slab.h:766 [inline]
[<ffffffff81631398>] slab_alloc_node mm/slub.c:3478 [inline]
[<ffffffff81631398>] slab_alloc mm/slub.c:3486 [inline]
[<ffffffff81631398>] __kmem_cache_alloc_lru mm/slub.c:3493 [inline]
[<ffffffff81631398>] kmem_cache_alloc+0x298/0x430 mm/slub.c:3502
[<ffffffff84b5094c>] radix_tree_node_alloc.constprop.0+0x7c/0x1a0 lib/radix-tree.c:276
[<ffffffff84b524cf>] __radix_tree_create lib/radix-tree.c:624 [inline]
[<ffffffff84b524cf>] radix_tree_insert+0x14f/0x360 lib/radix-tree.c:712
[<ffffffff84ae108c>] qrtr_tx_wait net/qrtr/af_qrtr.c:277 [inline]
[<ffffffff84ae108c>] qrtr_node_enqueue+0x58c/0x660 net/qrtr/af_qrtr.c:354
[<ffffffff84ae2746>] qrtr_bcast_enqueue+0x66/0xd0 net/qrtr/af_qrtr.c:897
[<ffffffff84ae3322>] qrtr_sendmsg+0x232/0x450 net/qrtr/af_qrtr.c:998
[<ffffffff83ec3c42>] sock_sendmsg_nosec net/socket.c:730 [inline]
[<ffffffff83ec3c42>] __sock_sendmsg+0x52/0xa0 net/socket.c:745
[<ffffffff83ec3d8b>] sock_write_iter+0xfb/0x180 net/socket.c:1158
[<ffffffff816961a7>] call_write_iter include/linux/fs.h:2020 [inline]
[<ffffffff816961a7>] new_sync_write fs/read_write.c:491 [inline]
[<ffffffff816961a7>] vfs_write+0x327/0x590 fs/read_write.c:584
[<ffffffff816966fb>] ksys_write+0x13b/0x170 fs/read_write.c:637
[<ffffffff84b6ddcf>] do_syscall_x64 arch/x86/entry/common.c:51 [inline]
[<ffffffff84b6ddcf>] do_syscall_64+0x3f/0x110 arch/x86/entry/common.c:82
[<ffffffff84c0008b>] entry_SYSCALL_64_after_hwframe+0x63/0x6b



Tested on:

commit: 33cc938e Linux 6.7-rc4
git tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
console output: https://syzkaller.appspot.com/x/log.txt?x=15858332e80000
kernel config: https://syzkaller.appspot.com/x/.config?x=37d1b8bb20150e6
dashboard link: https://syzkaller.appspot.com/bug?extid=006987d1be3586e13555
compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40
patch: https://syzkaller.appspot.com/x/patch.diff?x=15b888b6e80000