linux/net/batman-adv
Sven Eckelmann 3db0decf11 batman-adv: Fix non-atomic bla_claim::backbone_gw access
The pointer batadv_bla_claim::backbone_gw can be changed at any time.
Therefore, access to it must be protected to ensure that two function
accessing the same backbone_gw are actually accessing the same. This is
especially important when the crc_lock is used or when the backbone_gw of a
claim is exchanged.

Not doing so leads to invalid memory access and/or reference leaks.

Fixes: 23721387c4 ("batman-adv: add basic bridge loop avoidance code")
Fixes: 5a1dd8a477 ("batman-adv: lock crc access in bridge loop avoidance")
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:21 +02: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_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
bat_v.c batman-adv: initialize ELP orig address on secondary interfaces 2016-05-18 11:49:44 +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
Kconfig batman-adv: clarify CFG80211 dependency 2016-03-02 13:45:47 -05: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
Makefile batman-adv: OGMv2 - add basic infrastructure 2016-02-29 16:05:31 +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 ICMP RR ethernet access after skb_linearize 2016-06-29 04:01:48 -04: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 non-atomic bla_claim::backbone_gw access 2016-07-05 12:43:21 +02:00