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

From: syzbot
Date: Sun Dec 10 2023 - 00:00:15 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 0xffff88810bad6db0 (size 576):
comm "syz-executor.0", pid 5766, jiffies 4294945919 (age 13.560s)
hex dump (first 32 bytes):
3c 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 <...............
f0 b3 c9 1b 81 88 ff ff c8 6d ad 0b 81 88 ff ff .........m......
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
[<ffffffff84b5252b>] __radix_tree_create lib/radix-tree.c:628 [inline]
[<ffffffff84b5252b>] radix_tree_insert+0x16b/0x3a0 lib/radix-tree.c:717
[<ffffffff84ae107d>] qrtr_tx_wait net/qrtr/af_qrtr.c:277 [inline]
[<ffffffff84ae107d>] qrtr_node_enqueue+0x57d/0x640 net/qrtr/af_qrtr.c:349
[<ffffffff84ae2726>] qrtr_bcast_enqueue+0x66/0xd0 net/qrtr/af_qrtr.c:892
[<ffffffff84ae3302>] qrtr_sendmsg+0x232/0x450 net/qrtr/af_qrtr.c:993
[<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
[<ffffffff84b6de4f>] do_syscall_x64 arch/x86/entry/common.c:51 [inline]
[<ffffffff84b6de4f>] do_syscall_64+0x3f/0x110 arch/x86/entry/common.c:82
[<ffffffff84c0008b>] entry_SYSCALL_64_after_hwframe+0x63/0x6b

BUG: memory leak
unreferenced object 0xffff88810c246000 (size 576):
comm "syz-executor.0", pid 5766, jiffies 4294945920 (age 13.550s)
hex dump (first 32 bytes):
36 0f 01 00 00 00 00 00 b0 6d ad 0b 81 88 ff ff 6........m......
f0 b3 c9 1b 81 88 ff ff 18 60 24 0c 81 88 ff ff .........`$.....
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
[<ffffffff84b5252b>] __radix_tree_create lib/radix-tree.c:628 [inline]
[<ffffffff84b5252b>] radix_tree_insert+0x16b/0x3a0 lib/radix-tree.c:717
[<ffffffff84ae107d>] qrtr_tx_wait net/qrtr/af_qrtr.c:277 [inline]
[<ffffffff84ae107d>] qrtr_node_enqueue+0x57d/0x640 net/qrtr/af_qrtr.c:349
[<ffffffff84ae2726>] qrtr_bcast_enqueue+0x66/0xd0 net/qrtr/af_qrtr.c:892
[<ffffffff84ae3302>] qrtr_sendmsg+0x232/0x450 net/qrtr/af_qrtr.c:993
[<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
[<ffffffff84b6de4f>] do_syscall_x64 arch/x86/entry/common.c:51 [inline]
[<ffffffff84b6de4f>] do_syscall_64+0x3f/0x110 arch/x86/entry/common.c:82
[<ffffffff84c0008b>] entry_SYSCALL_64_after_hwframe+0x63/0x6b

BUG: memory leak
unreferenced object 0xffff88810c246248 (size 576):
comm "syz-executor.0", pid 5766, jiffies 4294945921 (age 13.540s)
hex dump (first 32 bytes):
30 3f 01 00 00 00 00 00 00 60 24 0c 81 88 ff ff 0?.......`$.....
f0 b3 c9 1b 81 88 ff ff 60 62 24 0c 81 88 ff ff ........`b$.....
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
[<ffffffff84b5252b>] __radix_tree_create lib/radix-tree.c:628 [inline]
[<ffffffff84b5252b>] radix_tree_insert+0x16b/0x3a0 lib/radix-tree.c:717
[<ffffffff84ae107d>] qrtr_tx_wait net/qrtr/af_qrtr.c:277 [inline]
[<ffffffff84ae107d>] qrtr_node_enqueue+0x57d/0x640 net/qrtr/af_qrtr.c:349
[<ffffffff84ae2726>] qrtr_bcast_enqueue+0x66/0xd0 net/qrtr/af_qrtr.c:892
[<ffffffff84ae3302>] qrtr_sendmsg+0x232/0x450 net/qrtr/af_qrtr.c:993
[<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
[<ffffffff84b6de4f>] do_syscall_x64 arch/x86/entry/common.c:51 [inline]
[<ffffffff84b6de4f>] do_syscall_64+0x3f/0x110 arch/x86/entry/common.c:82
[<ffffffff84c0008b>] entry_SYSCALL_64_after_hwframe+0x63/0x6b

BUG: memory leak
unreferenced object 0xffff88810c246490 (size 576):
comm "syz-executor.0", pid 5766, jiffies 4294945921 (age 13.540s)
hex dump (first 32 bytes):
2a 3f 00 00 00 00 00 00 48 62 24 0c 81 88 ff ff *?......Hb$.....
f0 b3 c9 1b 81 88 ff ff a8 64 24 0c 81 88 ff ff .........d$.....
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
[<ffffffff84b5252b>] __radix_tree_create lib/radix-tree.c:628 [inline]
[<ffffffff84b5252b>] radix_tree_insert+0x16b/0x3a0 lib/radix-tree.c:717
[<ffffffff84ae107d>] qrtr_tx_wait net/qrtr/af_qrtr.c:277 [inline]
[<ffffffff84ae107d>] qrtr_node_enqueue+0x57d/0x640 net/qrtr/af_qrtr.c:349
[<ffffffff84ae2726>] qrtr_bcast_enqueue+0x66/0xd0 net/qrtr/af_qrtr.c:892
[<ffffffff84ae3302>] qrtr_sendmsg+0x232/0x450 net/qrtr/af_qrtr.c:993
[<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
[<ffffffff84b6de4f>] do_syscall_x64 arch/x86/entry/common.c:51 [inline]
[<ffffffff84b6de4f>] 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=151b7d6ce80000
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=1242ef32e80000