Hello,
syzbot has tested the proposed patch but the reproducer is still triggering an issue:
memory leak in netlink_policy_dump_add_policy
BUG: memory leak
unreferenced object 0xffff8881150d8c00 (size 192):
comm "syz-executor.0", pid 4094, jiffies 4294944950 (age 13.410s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 ................
e0 64 fd 84 ff ff ff ff 40 01 00 00 00 00 00 00 .d......@.......
backtrace:
[<ffffffff83a14e98>] kmalloc include/linux/slab.h:600 [inline]
[<ffffffff83a14e98>] kzalloc include/linux/slab.h:733 [inline]
[<ffffffff83a14e98>] alloc_state net/netlink/policy.c:104 [inline]
[<ffffffff83a14e98>] netlink_policy_dump_add_policy+0x198/0x1f0 net/netlink/policy.c:135
[<ffffffff83a1428d>] ctrl_dumppolicy_start+0x15d/0x2b0 net/netlink/genetlink.c:1173
[<ffffffff83a116f8>] genl_start+0x148/0x210 net/netlink/genetlink.c:596
[<ffffffff83a0e06a>] __netlink_dump_start+0x20a/0x440 net/netlink/af_netlink.c:2370
[<ffffffff83a10e8e>] genl_family_rcv_msg_dumpit+0x15e/0x190 net/netlink/genetlink.c:678
[<ffffffff83a11cd5>] genl_family_rcv_msg net/netlink/genetlink.c:772 [inline]
[<ffffffff83a11cd5>] genl_rcv_msg+0x225/0x2c0 net/netlink/genetlink.c:792
[<ffffffff83a10307>] netlink_rcv_skb+0x87/0x1d0 net/netlink/af_netlink.c:2501
[<ffffffff83a10d14>] genl_rcv+0x24/0x40 net/netlink/genetlink.c:803
[<ffffffff83a0f477>] netlink_unicast_kernel net/netlink/af_netlink.c:1319 [inline]
[<ffffffff83a0f477>] netlink_unicast+0x397/0x4c0 net/netlink/af_netlink.c:1345
[<ffffffff83a0f936>] netlink_sendmsg+0x396/0x710 net/netlink/af_netlink.c:1921
[<ffffffff83861796>] sock_sendmsg_nosec net/socket.c:714 [inline]
[<ffffffff83861796>] sock_sendmsg+0x56/0x80 net/socket.c:734
[<ffffffff83861cfc>] ____sys_sendmsg+0x36c/0x390 net/socket.c:2482
[<ffffffff838665f8>] ___sys_sendmsg+0xa8/0x110 net/socket.c:2536
[<ffffffff83866788>] __sys_sendmsg+0x88/0x100 net/socket.c:2565
[<ffffffff845e0645>] do_syscall_x64 arch/x86/entry/common.c:50 [inline]
[<ffffffff845e0645>] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
[<ffffffff84600087>] entry_SYSCALL_64_after_hwframe+0x63/0xcd
BUG: memory leak
unreferenced object 0xffff888114a7e240 (size 192):
comm "syz-executor.0", pid 4097, jiffies 4294945519 (age 7.720s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 ................
e0 64 fd 84 ff ff ff ff 40 01 00 00 00 00 00 00 .d......@.......
backtrace:
[<ffffffff83a14e98>] kmalloc include/linux/slab.h:600 [inline]
[<ffffffff83a14e98>] kzalloc include/linux/slab.h:733 [inline]
[<ffffffff83a14e98>] alloc_state net/netlink/policy.c:104 [inline]
[<ffffffff83a14e98>] netlink_policy_dump_add_policy+0x198/0x1f0 net/netlink/policy.c:135
[<ffffffff83a1428d>] ctrl_dumppolicy_start+0x15d/0x2b0 net/netlink/genetlink.c:1173
[<ffffffff83a116f8>] genl_start+0x148/0x210 net/netlink/genetlink.c:596
[<ffffffff83a0e06a>] __netlink_dump_start+0x20a/0x440 net/netlink/af_netlink.c:2370
[<ffffffff83a10e8e>] genl_family_rcv_msg_dumpit+0x15e/0x190 net/netlink/genetlink.c:678
[<ffffffff83a11cd5>] genl_family_rcv_msg net/netlink/genetlink.c:772 [inline]
[<ffffffff83a11cd5>] genl_rcv_msg+0x225/0x2c0 net/netlink/genetlink.c:792
[<ffffffff83a10307>] netlink_rcv_skb+0x87/0x1d0 net/netlink/af_netlink.c:2501
[<ffffffff83a10d14>] genl_rcv+0x24/0x40 net/netlink/genetlink.c:803
[<ffffffff83a0f477>] netlink_unicast_kernel net/netlink/af_netlink.c:1319 [inline]
[<ffffffff83a0f477>] netlink_unicast+0x397/0x4c0 net/netlink/af_netlink.c:1345
[<ffffffff83a0f936>] netlink_sendmsg+0x396/0x710 net/netlink/af_netlink.c:1921
[<ffffffff83861796>] sock_sendmsg_nosec net/socket.c:714 [inline]
[<ffffffff83861796>] sock_sendmsg+0x56/0x80 net/socket.c:734
[<ffffffff83861cfc>] ____sys_sendmsg+0x36c/0x390 net/socket.c:2482
[<ffffffff838665f8>] ___sys_sendmsg+0xa8/0x110 net/socket.c:2536
[<ffffffff83866788>] __sys_sendmsg+0x88/0x100 net/socket.c:2565
[<ffffffff845e0645>] do_syscall_x64 arch/x86/entry/common.c:50 [inline]
[<ffffffff845e0645>] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
[<ffffffff84600087>] entry_SYSCALL_64_after_hwframe+0x63/0xcd
Tested on:
commit: 7b3f410d net: genl: fix error path memory leak in poli..
git tree:
https://git.kernel.org/pub/scm/linux/kernel/git/kuba/linux.git genl-fix
console output:
https://syzkaller.appspot.com/x/log.txt?x=13393d15080000
kernel config:
https://syzkaller.appspot.com/x/.config?x=181546538a43e305
Note: no patches were applied.