linux/net/batman-adv
Sven Eckelmann 15c2ed753c batman-adv: Fix reference leak in batadv_find_router
The replacement of last_bonding_candidate in batadv_orig_node has to be an
atomic operation. Otherwise it is possible that the reference counter of a
batadv_orig_ifinfo is reduced which was no longer the
last_bonding_candidate when the new candidate is added. This can either
lead to an invalid memory access or to reference leaks which make it
impossible to an interface which was added to batman-adv.

Fixes: f3b3d90189 ("batman-adv: add bonding again")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
2016-07-05 12:43:52 +02:00
..
Kconfig batman-adv: clarify CFG80211 dependency 2016-03-02 13:45:47 -05:00
Makefile batman-adv: OGMv2 - add basic infrastructure 2016-02-29 16:05:31 +08:00
bat_algo.h batman-adv: OGMv2 - add basic infrastructure 2016-02-29 16:05:31 +08:00
bat_iv_ogm.c batman-adv: Fix integer overflow in batadv_iv_ogm_calc_tq 2016-05-18 11:49:42 +08:00
bat_v.c batman-adv: initialize ELP orig address on secondary interfaces 2016-05-18 11:49:44 +08:00
bat_v_elp.c batman-adv: initialize ELP orig address on secondary interfaces 2016-05-18 11:49:44 +08:00
bat_v_elp.h batman-adv: initialize ELP orig address on secondary interfaces 2016-05-18 11:49:44 +08:00
bat_v_ogm.c batman-adv: Check hard_iface refcnt before calling function 2016-05-10 18:28:29 +08:00
bat_v_ogm.h batman-adv: OGMv2 - implement originators logic 2016-02-29 16:05:31 +08:00
bitarray.c batman-adv: Use bool as return type for boolean functions 2016-05-10 18:28:54 +08:00
bitarray.h batman-adv: Use bool as return type for boolean functions 2016-05-10 18:28:54 +08:00
bridge_loop_avoidance.c batman-adv: Fix non-atomic bla_claim::backbone_gw access 2016-07-05 12:43:21 +02:00
bridge_loop_avoidance.h batman-adv: Use bool as return type for boolean functions 2016-05-10 18:28:54 +08:00
debugfs.c batman-adv: Use bool as return type for boolean functions 2016-05-10 18:28:54 +08:00
debugfs.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
distributed-arp-table.c batman-adv: Avoid nullptr dereference in dat after vlan_insert_tag 2016-07-05 12:40:01 +02:00
distributed-arp-table.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
fragmentation.c batman-adv: Fix checkpatch warning about 'unsigned' type 2016-05-04 02:22:03 +08:00
fragmentation.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
gateway_client.c batman-adv: Use kref_get for batadv_gw_node_add 2016-05-10 18:28:29 +08:00
gateway_client.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
gateway_common.c batman-adv: add throughput override attribute to hard_ifaces 2016-02-29 16:05:32 +08:00
gateway_common.h batman-adv: add throughput override attribute to hard_ifaces 2016-02-29 16:05:32 +08:00
hard-interface.c batman-adv: Use bool as return type for boolean functions 2016-05-10 18:28:54 +08:00
hard-interface.h batman-adv: Create batman soft interfaces within correct netns. 2016-05-10 18:26:44 +08:00
hash.c batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
hash.h batman-adv: Use bool as return type for boolean functions 2016-05-10 18:28:54 +08:00
icmp_socket.c batman-adv: fix wrong names in kerneldoc 2016-05-04 02:22:03 +08:00
icmp_socket.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
main.c batman-adv: Use kref_get for batadv_tvlv_container_get 2016-05-10 18:28:29 +08:00
main.h batman-adv: Use bool as return type for boolean functions 2016-05-10 18:28:54 +08:00
multicast.c batman-adv: fix wrong names in kerneldoc 2016-05-04 02:22:03 +08:00
multicast.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
network-coding.c batman-adv: use batadv_compare_eth when possible 2016-05-10 18:28:54 +08:00
network-coding.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
originator.c batman-adv: Fix orig_node_vlan leak on orig_node_release 2016-07-05 12:43:10 +02:00
originator.h batman-adv: Use bool as return type for boolean functions 2016-05-10 18:28:54 +08:00
packet.h batman-adv: add detection for complex bridge loops 2016-05-10 18:26:45 +08:00
routing.c batman-adv: Fix reference leak in batadv_find_router 2016-07-05 12:43:52 +02:00
routing.h batman-adv: Use bool as return type for boolean functions 2016-05-10 18:28:54 +08:00
send.c batman-adv: Check hard_iface refcnt before calling function 2016-05-10 18:28:29 +08:00
send.h batman-adv: keep track of when unicast packets are sent 2016-02-29 16:05:32 +08:00
soft-interface.c batman-adv: Clean up untagged vlan when destroying via rtnl-link 2016-06-29 04:01:48 -04:00
soft-interface.h batman-adv: Use bool as return type for boolean functions 2016-05-10 18:28:54 +08:00
sysfs.c batman-adv: add detection for complex bridge loops 2016-05-10 18:26:45 +08:00
sysfs.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
translation-table.c batman-adv: Fix double-put of vlan object 2016-06-29 04:01:47 -04:00
translation-table.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
types.h batman-adv: Fix reference leak in batadv_find_router 2016-07-05 12:43:52 +02:00