diff options
author | Antonio Quartulli <antonio@meshcoding.com> | 2014-12-20 07:48:57 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-12-23 23:13:37 -0500 |
commit | 0d1644919578db525b9a7b6c8197ce02adbfce26 (patch) | |
tree | 98dd759ca950e3d8220ff7504baba8c4bec7b7da /net/batman-adv/gateway_client.c | |
parent | 0402e444cd199389b7fe47be68a67b817e09e097 (diff) |
batman-adv: avoid NULL dereferences and fix if check
Gateway having bandwidth_down equal to zero are not accepted
at all and so never added to the Gateway list.
For this reason checking the bandwidth_down member in
batadv_gw_out_of_range() is useless.
This is probably a copy/paste error and this check was supposed
to be "!gw_node" only. Moreover, the way the check is written
now may also lead to a NULL dereference.
Fix this by rewriting the if-condition properly.
Introduced by 414254e342a0d58144de40c3da777521ebaeeb07
("batman-adv: tvlv - gateway download/upload bandwidth container")
Signed-off-by: Antonio Quartulli <antonio@meshcoding.com>
Reported-by: David Binderman <dcb314@hotmail.com>
Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/batman-adv/gateway_client.c')
-rw-r--r-- | net/batman-adv/gateway_client.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/batman-adv/gateway_client.c b/net/batman-adv/gateway_client.c index 90cff585b37d..e0bcf9e84273 100644 --- a/net/batman-adv/gateway_client.c +++ b/net/batman-adv/gateway_client.c | |||
@@ -810,7 +810,7 @@ bool batadv_gw_out_of_range(struct batadv_priv *bat_priv, | |||
810 | goto out; | 810 | goto out; |
811 | 811 | ||
812 | gw_node = batadv_gw_node_get(bat_priv, orig_dst_node); | 812 | gw_node = batadv_gw_node_get(bat_priv, orig_dst_node); |
813 | if (!gw_node->bandwidth_down == 0) | 813 | if (!gw_node) |
814 | goto out; | 814 | goto out; |
815 | 815 | ||
816 | switch (atomic_read(&bat_priv->gw_mode)) { | 816 | switch (atomic_read(&bat_priv->gw_mode)) { |