memory leak in genl_family_rcv_msg_attrs_parse

From: syzbot
Date: Sun Dec 22 2019 - 00:25:23 EST


Hello,

syzbot found the following crash on:

HEAD commit: f1fd1610 Merge tag 'devicetree-fixes-for-5.5-2' of git://g..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=10b51e71e00000
kernel config: https://syzkaller.appspot.com/x/.config?x=7e6526c42b4ad7df
dashboard link: https://syzkaller.appspot.com/bug?extid=4d763213368ad8d5a49f
compiler: gcc (GCC) 9.0.0 20181231 (experimental)
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=16a224aee00000

IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+4d763213368ad8d5a49f@xxxxxxxxxxxxxxxxxxxxxxxxx

2019/12/21 18:57:43 executed programs: 1
BUG: memory leak
unreferenced object 0xffff888122a69800 (size 2048):
comm "syz-executor.0", pid 7220, jiffies 4295041795 (age 12.350s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace:
[<00000000ea56780b>] kmemleak_alloc_recursive include/linux/kmemleak.h:43 [inline]
[<00000000ea56780b>] slab_post_alloc_hook mm/slab.h:586 [inline]
[<00000000ea56780b>] slab_alloc mm/slab.c:3320 [inline]
[<00000000ea56780b>] __do_kmalloc mm/slab.c:3654 [inline]
[<00000000ea56780b>] __kmalloc+0x169/0x300 mm/slab.c:3665
[<000000005867ad5d>] kmalloc_array include/linux/slab.h:598 [inline]
[<000000005867ad5d>] genl_family_rcv_msg_attrs_parse+0x12a/0x160 net/netlink/genetlink.c:490
[<00000000b300803a>] genl_family_rcv_msg_dumpit net/netlink/genetlink.c:588 [inline]
[<00000000b300803a>] genl_family_rcv_msg net/netlink/genetlink.c:714 [inline]
[<00000000b300803a>] genl_rcv_msg+0x356/0x580 net/netlink/genetlink.c:734
[<000000007aa7803c>] netlink_rcv_skb+0x61/0x170 net/netlink/af_netlink.c:2477
[<00000000cf0291ee>] genl_rcv+0x29/0x40 net/netlink/genetlink.c:745
[<00000000d9eda8cf>] netlink_unicast_kernel net/netlink/af_netlink.c:1302 [inline]
[<00000000d9eda8cf>] netlink_unicast+0x223/0x310 net/netlink/af_netlink.c:1328
[<00000000d87050ed>] netlink_sendmsg+0x2c0/0x570 net/netlink/af_netlink.c:1917
[<0000000073d32856>] sock_sendmsg_nosec net/socket.c:639 [inline]
[<0000000073d32856>] sock_sendmsg+0x54/0x70 net/socket.c:659
[<00000000c88230c3>] ____sys_sendmsg+0x2d0/0x300 net/socket.c:2330
[<00000000119fa4e9>] ___sys_sendmsg+0x8a/0xd0 net/socket.c:2384
[<00000000196367bc>] __sys_sendmsg+0x80/0xf0 net/socket.c:2417
[<0000000022242f1e>] __do_sys_sendmsg net/socket.c:2426 [inline]
[<0000000022242f1e>] __se_sys_sendmsg net/socket.c:2424 [inline]
[<0000000022242f1e>] __x64_sys_sendmsg+0x23/0x30 net/socket.c:2424
[<000000007b63ee83>] do_syscall_64+0x73/0x220 arch/x86/entry/common.c:294
[<00000000447890a9>] entry_SYSCALL_64_after_hwframe+0x44/0xa9

BUG: memory leak
unreferenced object 0xffff88811cf4a1c0 (size 32):
comm "syz-executor.0", pid 7220, jiffies 4295041795 (age 12.350s)
hex dump (first 32 bytes):
c0 a7 16 84 ff ff ff ff 30 0c b2 83 ff ff ff ff ........0.......
00 98 a6 22 81 88 ff ff 00 00 00 00 00 00 00 00 ..."............
backtrace:
[<00000000e670bd2f>] kmemleak_alloc_recursive include/linux/kmemleak.h:43 [inline]
[<00000000e670bd2f>] slab_post_alloc_hook mm/slab.h:586 [inline]
[<00000000e670bd2f>] slab_alloc mm/slab.c:3320 [inline]
[<00000000e670bd2f>] kmem_cache_alloc_trace+0x145/0x2c0 mm/slab.c:3549
[<000000000f637ea3>] kmalloc include/linux/slab.h:556 [inline]
[<000000000f637ea3>] genl_dumpit_info_alloc net/netlink/genetlink.c:463 [inline]
[<000000000f637ea3>] genl_family_rcv_msg_dumpit net/netlink/genetlink.c:597 [inline]
[<000000000f637ea3>] genl_family_rcv_msg net/netlink/genetlink.c:714 [inline]
[<000000000f637ea3>] genl_rcv_msg+0x385/0x580 net/netlink/genetlink.c:734
[<000000007aa7803c>] netlink_rcv_skb+0x61/0x170 net/netlink/af_netlink.c:2477
[<00000000cf0291ee>] genl_rcv+0x29/0x40 net/netlink/genetlink.c:745
[<00000000d9eda8cf>] netlink_unicast_kernel net/netlink/af_netlink.c:1302 [inline]
[<00000000d9eda8cf>] netlink_unicast+0x223/0x310 net/netlink/af_netlink.c:1328
[<00000000d87050ed>] netlink_sendmsg+0x2c0/0x570 net/netlink/af_netlink.c:1917
[<0000000073d32856>] sock_sendmsg_nosec net/socket.c:639 [inline]
[<0000000073d32856>] sock_sendmsg+0x54/0x70 net/socket.c:659
[<00000000c88230c3>] ____sys_sendmsg+0x2d0/0x300 net/socket.c:2330
[<00000000119fa4e9>] ___sys_sendmsg+0x8a/0xd0 net/socket.c:2384
[<00000000196367bc>] __sys_sendmsg+0x80/0xf0 net/socket.c:2417
[<0000000022242f1e>] __do_sys_sendmsg net/socket.c:2426 [inline]
[<0000000022242f1e>] __se_sys_sendmsg net/socket.c:2424 [inline]
[<0000000022242f1e>] __x64_sys_sendmsg+0x23/0x30 net/socket.c:2424
[<000000007b63ee83>] do_syscall_64+0x73/0x220 arch/x86/entry/common.c:294
[<00000000447890a9>] entry_SYSCALL_64_after_hwframe+0x44/0xa9

BUG: memory leak
unreferenced object 0xffff88811cc193c0 (size 32):
comm "syz-executor.0", pid 7225, jiffies 4295042308 (age 7.220s)
hex dump (first 32 bytes):
c0 a7 16 84 ff ff ff ff 30 0c b2 83 ff ff ff ff ........0.......
00 30 fc 0e 81 88 ff ff 00 00 00 00 00 00 00 00 .0..............
backtrace:
[<00000000e670bd2f>] kmemleak_alloc_recursive include/linux/kmemleak.h:43 [inline]
[<00000000e670bd2f>] slab_post_alloc_hook mm/slab.h:586 [inline]
[<00000000e670bd2f>] slab_alloc mm/slab.c:3320 [inline]
[<00000000e670bd2f>] kmem_cache_alloc_trace+0x145/0x2c0 mm/slab.c:3549
[<000000000f637ea3>] kmalloc include/linux/slab.h:556 [inline]
[<000000000f637ea3>] genl_dumpit_info_alloc net/netlink/genetlink.c:463 [inline]
[<000000000f637ea3>] genl_family_rcv_msg_dumpit net/netlink/genetlink.c:597 [inline]
[<000000000f637ea3>] genl_family_rcv_msg net/netlink/genetlink.c:714 [inline]
[<000000000f637ea3>] genl_rcv_msg+0x385/0x580 net/netlink/genetlink.c:734
[<000000007aa7803c>] netlink_rcv_skb+0x61/0x170 net/netlink/af_netlink.c:2477
[<00000000cf0291ee>] genl_rcv+0x29/0x40 net/netlink/genetlink.c:745
[<00000000d9eda8cf>] netlink_unicast_kernel net/netlink/af_netlink.c:1302 [inline]
[<00000000d9eda8cf>] netlink_unicast+0x223/0x310 net/netlink/af_netlink.c:1328
[<00000000d87050ed>] netlink_sendmsg+0x2c0/0x570 net/netlink/af_netlink.c:1917
[<0000000073d32856>] sock_sendmsg_nosec net/socket.c:639 [inline]
[<0000000073d32856>] sock_sendmsg+0x54/0x70 net/socket.c:659
[<00000000c88230c3>] ____sys_sendmsg+0x2d0/0x300 net/socket.c:2330
[<00000000119fa4e9>] ___sys_sendmsg+0x8a/0xd0 net/socket.c:2384
[<00000000196367bc>] __sys_sendmsg+0x80/0xf0 net/socket.c:2417
[<0000000022242f1e>] __do_sys_sendmsg net/socket.c:2426 [inline]
[<0000000022242f1e>] __se_sys_sendmsg net/socket.c:2424 [inline]
[<0000000022242f1e>] __x64_sys_sendmsg+0x23/0x30 net/socket.c:2424
[<000000007b63ee83>] do_syscall_64+0x73/0x220 arch/x86/entry/common.c:294
[<00000000447890a9>] entry_SYSCALL_64_after_hwframe+0x44/0xa9

BUG: memory leak
unreferenced object 0xffff88812a2966e0 (size 32):
comm "syz-executor.0", pid 7229, jiffies 4295042309 (age 7.210s)
hex dump (first 32 bytes):
c0 a7 16 84 ff ff ff ff 30 0c b2 83 ff ff ff ff ........0.......
00 40 2d 22 81 88 ff ff 00 00 00 00 00 00 00 00 .@-"............
backtrace:
[<00000000e670bd2f>] kmemleak_alloc_recursive include/linux/kmemleak.h:43 [inline]
[<00000000e670bd2f>] slab_post_alloc_hook mm/slab.h:586 [inline]
[<00000000e670bd2f>] slab_alloc mm/slab.c:3320 [inline]
[<00000000e670bd2f>] kmem_cache_alloc_trace+0x145/0x2c0 mm/slab.c:3549
[<000000000f637ea3>] kmalloc include/linux/slab.h:556 [inline]
[<000000000f637ea3>] genl_dumpit_info_alloc net/netlink/genetlink.c:463 [inline]
[<000000000f637ea3>] genl_family_rcv_msg_dumpit net/netlink/genetlink.c:597 [inline]
[<000000000f637ea3>] genl_family_rcv_msg net/netlink/genetlink.c:714 [inline]
[<000000000f637ea3>] genl_rcv_msg+0x385/0x580 net/netlink/genetlink.c:734
[<000000007aa7803c>] netlink_rcv_skb+0x61/0x170 net/netlink/af_netlink.c:2477
[<00000000cf0291ee>] genl_rcv+0x29/0x40 net/netlink/genetlink.c:745
[<00000000d9eda8cf>] netlink_unicast_kernel net/netlink/af_netlink.c:1302 [inline]
[<00000000d9eda8cf>] netlink_unicast+0x223/0x310 net/netlink/af_netlink.c:1328
[<00000000d87050ed>] netlink_sendmsg+0x2c0/0x570 net/netlink/af_netlink.c:1917
[<0000000073d32856>] sock_sendmsg_nosec net/socket.c:639 [inline]
[<0000000073d32856>] sock_sendmsg+0x54/0x70 net/socket.c:659
[<00000000c88230c3>] ____sys_sendmsg+0x2d0/0x300 net/socket.c:2330
[<00000000119fa4e9>] ___sys_sendmsg+0x8a/0xd0 net/socket.c:2384
[<00000000196367bc>] __sys_sendmsg+0x80/0xf0 net/socket.c:2417
[<0000000022242f1e>] __do_sys_sendmsg net/socket.c:2426 [inline]
[<0000000022242f1e>] __se_sys_sendmsg net/socket.c:2424 [inline]
[<0000000022242f1e>] __x64_sys_sendmsg+0x23/0x30 net/socket.c:2424
[<000000007b63ee83>] do_syscall_64+0x73/0x220 arch/x86/entry/common.c:294
[<00000000447890a9>] entry_SYSCALL_64_after_hwframe+0x44/0xa9



---
This bug 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@xxxxxxxxxxxxxxxxx

syzbot will keep track of this bug report. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
syzbot can test patches for this bug, for details see:
https://goo.gl/tpsmEJ#testing-patches