linux/net/batman-adv
Eric Dumazet 3ee1bb7aae batman-adv: fix uninit-value in batadv_netlink_get_ifindex()
batadv_netlink_get_ifindex() needs to make sure user passed
a correct u32 attribute.

syzbot reported :
BUG: KMSAN: uninit-value in batadv_netlink_dump_hardif+0x70d/0x880 net/batman-adv/netlink.c:968
CPU: 1 PID: 11705 Comm: syz-executor888 Not tainted 5.1.0+ #1
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
 __dump_stack lib/dump_stack.c:77 [inline]
 dump_stack+0x191/0x1f0 lib/dump_stack.c:113
 kmsan_report+0x130/0x2a0 mm/kmsan/kmsan.c:622
 __msan_warning+0x75/0xe0 mm/kmsan/kmsan_instr.c:310
 batadv_netlink_dump_hardif+0x70d/0x880 net/batman-adv/netlink.c:968
 genl_lock_dumpit+0xc6/0x130 net/netlink/genetlink.c:482
 netlink_dump+0xa84/0x1ab0 net/netlink/af_netlink.c:2253
 __netlink_dump_start+0xa3a/0xb30 net/netlink/af_netlink.c:2361
 genl_family_rcv_msg net/netlink/genetlink.c:550 [inline]
 genl_rcv_msg+0xfc1/0x1a40 net/netlink/genetlink.c:627
 netlink_rcv_skb+0x431/0x620 net/netlink/af_netlink.c:2486
 genl_rcv+0x63/0x80 net/netlink/genetlink.c:638
 netlink_unicast_kernel net/netlink/af_netlink.c:1311 [inline]
 netlink_unicast+0xf3e/0x1020 net/netlink/af_netlink.c:1337
 netlink_sendmsg+0x127e/0x12f0 net/netlink/af_netlink.c:1926
 sock_sendmsg_nosec net/socket.c:651 [inline]
 sock_sendmsg net/socket.c:661 [inline]
 ___sys_sendmsg+0xcc6/0x1200 net/socket.c:2260
 __sys_sendmsg net/socket.c:2298 [inline]
 __do_sys_sendmsg net/socket.c:2307 [inline]
 __se_sys_sendmsg+0x305/0x460 net/socket.c:2305
 __x64_sys_sendmsg+0x4a/0x70 net/socket.c:2305
 do_syscall_64+0xbc/0xf0 arch/x86/entry/common.c:291
 entry_SYSCALL_64_after_hwframe+0x63/0xe7
RIP: 0033:0x440209

Fixes: b60620cf56 ("batman-adv: netlink: hardif query")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: syzbot <syzkaller@googlegroups.com>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
2019-08-14 19:27:07 +02:00
..
Kconfig batman-adv: Make sysfs support optional 2019-03-25 10:01:11 +01:00
Makefile batman-adv: Make sysfs support optional 2019-03-25 10:01:11 +01:00
bat_algo.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bat_algo.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
bat_iv_ogm.c batman-adv: Fix duplicated OGMs on NETDEV_UP 2019-06-02 13:33:48 +02:00
bat_iv_ogm.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bat_v.c batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
bat_v.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bat_v_elp.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-04-05 14:14:19 -07:00
bat_v_elp.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
bat_v_ogm.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bat_v_ogm.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
bitarray.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bitarray.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bridge_loop_avoidance.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-04-05 14:14:19 -07:00
bridge_loop_avoidance.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
debugfs.c batman-adv: no need to check return value of debugfs_create functions 2019-06-27 19:25:04 +02:00
debugfs.h batman-adv: no need to check return value of debugfs_create functions 2019-06-27 19:25:04 +02:00
distributed-arp-table.c batman-adv: allow updating DAT entry timeouts on incoming ARP Replies 2019-03-25 10:01:13 +01:00
distributed-arp-table.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
fragmentation.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
fragmentation.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
gateway_client.c batman-adv: Make sysfs support optional 2019-03-25 10:01:11 +01:00
gateway_client.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
gateway_common.c batman-adv: Fix includes for *_MAX constants 2019-05-25 12:59:53 +02:00
gateway_common.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
hard-interface.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-07-08 19:48:57 -07:00
hard-interface.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
hash.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
hash.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
icmp_socket.c batman-adv: no need to check return value of debugfs_create functions 2019-06-27 19:25:04 +02:00
icmp_socket.h batman-adv: no need to check return value of debugfs_create functions 2019-06-27 19:25:04 +02:00
log.c batman-adv: no need to check return value of debugfs_create functions 2019-06-27 19:25:04 +02:00
log.h batman-adv: Add missing include for atomic functions 2019-05-25 12:59:53 +02:00
main.c This feature/cleanup patchset includes the following patches: 2019-05-09 09:44:17 -07:00
main.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
multicast.c batman-adv: Fix deletion of RTR(4|6) mcast list entries 2019-07-22 21:34:58 +02:00
multicast.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
netlink.c batman-adv: fix uninit-value in batadv_netlink_get_ifindex() 2019-08-14 19:27:07 +02:00
netlink.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
network-coding.c batman-adv: no need to check return value of debugfs_create functions 2019-06-27 19:25:04 +02:00
network-coding.h batman-adv: no need to check return value of debugfs_create functions 2019-06-27 19:25:04 +02:00
originator.c batman-adv: mcast: detect, distribute and maintain multicast router presence 2019-06-27 19:25:05 +02:00
originator.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
routing.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
routing.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
send.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
send.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
soft-interface.c batman-adv: mcast: shorten multicast tt/tvlv worker spinlock section 2019-05-25 12:59:54 +02:00
soft-interface.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
sysfs.c batman-adv: Fix includes for *_MAX constants 2019-05-25 12:59:53 +02:00
sysfs.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
tp_meter.c batman-adv: Fix includes for *_MAX constants 2019-05-25 12:59:53 +02:00
tp_meter.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
trace.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
trace.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
translation-table.c batman-adv: fix for leaked TVLV handler. 2019-05-21 23:01:24 +02:00
translation-table.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
tvlv.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
tvlv.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
types.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-07-08 19:48:57 -07:00