linux/net/batman-adv
Sven Eckelmann 273534468f batman-adv: Check hard_iface refcnt before calling function
The batadv_hardif_list list is checked in many situations and the items
in this list are given to specialized functions to modify the routing
behavior. At the moment each of these called functions has to check
itself whether the received batadv_hard_iface has a refcount > 0 before
it can increase the reference counter and use it in other objects.

This can easily lead to problems because it is not easily visible where
all callers of a function got the batadv_hard_iface object from and
whether they already hold a valid reference.

Checking the reference counter directly before calling a subfunction
with a pointer from the batadv_hardif_list avoids this problem.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
Signed-off-by: Antonio Quartulli <a@unstable.cc>
2016-05-10 18:28:29 +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: Check hard_iface refcnt before calling function 2016-05-10 18:28:29 +08:00
bat_v.c In this pull request you have: 2016-05-04 16:21:08 -04:00
bat_v_elp.c batman-adv: ELP - send unicast ELP packets for throughput sampling 2016-02-29 16:25:07 +08:00
bat_v_elp.h batman-adv: ELP - compute the metric based on the estimated throughput 2016-02-29 16:25:06 +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: update copyright years for 2016 2016-02-02 12:55:10 +08:00
bitarray.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
bridge_loop_avoidance.c batman-adv: add detection for complex bridge loops 2016-05-10 18:26:45 +08:00
bridge_loop_avoidance.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
debugfs.c batman-adv: fix debuginfo macro style issue 2016-05-04 02:22:03 +08:00
debugfs.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
distributed-arp-table.c In this pull request you have: 2016-05-04 16:21:08 -04: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: Rename batadv_gw_node *_free_ref function to *_put 2016-02-23 13:49:06 +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: Create batman soft interfaces within correct netns. 2016-05-10 18:26:44 +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: update copyright years for 2016 2016-02-02 12:55:10 +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: Fix function names on new line starting with '*' 2016-05-04 02:22:03 +08:00
main.h batman-adv: add detection for complex bridge loops 2016-05-10 18:26:45 +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: Fix function names on new line starting with '*' 2016-05-04 02:22:03 +08:00
network-coding.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
originator.c batman-adv: Check hard_iface refcnt before calling function 2016-05-10 18:28:29 +08:00
originator.h batman-adv: Rename batadv_orig_node_vlan *_free_ref function to *_put 2016-02-23 13:50:58 +08:00
packet.h batman-adv: add detection for complex bridge loops 2016-05-10 18:26:45 +08:00
routing.c batman-adv: Remove unused parameter recv_if of batadv_interface_rx 2016-05-10 18:26:43 +08:00
routing.h batman-adv: add seqno maximum age and protection start flag parameters 2016-02-10 23:23:57 +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: Create batman soft interfaces within correct netns. 2016-05-10 18:26:44 +08:00
soft-interface.h batman-adv: Create batman soft interfaces within correct netns. 2016-05-10 18:26:44 +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: Create batman soft interfaces within correct netns. 2016-05-10 18:26:44 +08:00
translation-table.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
types.h batman-adv: add detection for complex bridge loops 2016-05-10 18:26:45 +08:00