linux/net/batman-adv
Sven Eckelmann 40e220b421 batman-adv: Avoid free/alloc race when handling OGM buffer
Each slave interface of an B.A.T.M.A.N. IV virtual interface has an OGM
packet buffer which is initialized using data from netdevice notifier and
other rtnetlink related hooks. It is sent regularly via various slave
interfaces of the batadv virtual interface and in this process also
modified (realloced) to integrate additional state information via TVLV
containers.

It must be avoided that the worker item is executed without a common lock
with the netdevice notifier/rtnetlink helpers. Otherwise it can either
happen that half modified/freed data is sent out or functions modifying the
OGM buffer try to access already freed memory regions.

Reported-by: syzbot+0cc629f19ccb8534935b@syzkaller.appspotmail.com
Fixes: c6c8fea297 ("net: Add batman-adv meshing protocol")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
2019-10-13 21:00:07 +02: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: Avoid free/alloc race when handling OGM buffer 2019-10-13 21:00:07 +02:00
bat_iv_ogm.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: Avoid free/alloc race when handling OGM2 buffer 2019-10-13 20:36:39 +02:00
bat_v_ogm.h batman-adv: BATMAN_V: introduce per hard-iface OGMv2 queues 2019-08-04 22:22:00 +02:00
bat_v.c batman-adv: BATMAN_V: introduce per hard-iface OGMv2 queues 2019-08-04 22:22:00 +02:00
bat_v.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01: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 batman-adv: Avoid free/alloc race when handling OGM buffer 2019-10-13 21:00:07 +02: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
Kconfig net: Fix Kconfig indentation 2019-09-26 08:56:17 +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: Start new development cycle 2019-07-22 21:34:14 +02:00
Makefile batman-adv: Make sysfs support optional 2019-03-25 10:01:11 +01: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: Replace usage of strlcpy with strscpy 2019-07-22 21:34:14 +02:00
soft-interface.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
sysfs.c batman-adv: Replace usage of strlcpy with strscpy 2019-07-22 21:34:14 +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 batman-adv: Avoid free/alloc race when handling OGM buffer 2019-10-13 21:00:07 +02:00