[maint] batman-adv: avoid NULL dereferences and fix if check

Message ID 1411230125-21848-1-git-send-email-antonio@meshcoding.com (mailing list archive)
State Accepted, archived
Commit cb2b79e4dfd215cc53f3cd55afb15a6b69e5bcfc
Headers

Commit Message

Antonio Quartulli Sept. 20, 2014, 4:22 p.m. UTC
  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 0853ec7fafe0a195754454832993c6b35e22b842
("batman-adv: tvlv - gateway download/upload bandwidth container")

Signed-off-by: Antonio Quartulli <antonio@meshcoding.com>
Reported-by: David Binderman <dcb314@hotmail.com>
---

This patch makes "batman-adv: avoid NULL dereferences and clarify if check"
obsolete.


 gateway_client.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Marek Lindner Nov. 17, 2014, 11:07 a.m. UTC | #1
On Saturday 20 September 2014 18:22:05 Antonio Quartulli wrote:
> 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 0853ec7fafe0a195754454832993c6b35e22b842
> ("batman-adv: tvlv - gateway download/upload bandwidth container")
> 
> Signed-off-by: Antonio Quartulli <antonio@meshcoding.com>
> Reported-by: David Binderman <dcb314@hotmail.com>
> ---
> 
> This patch makes "batman-adv: avoid NULL dereferences and clarify if check"
> obsolete.
> 
> 
>  gateway_client.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Applied in revision cb2b79e.

Thanks,
Marek
  

Patch

diff --git a/gateway_client.c b/gateway_client.c
index bcc3e0c..27649e8 100644
--- a/gateway_client.c
+++ b/gateway_client.c
@@ -811,7 +811,7 @@  bool batadv_gw_out_of_range(struct batadv_priv *bat_priv,
 		goto out;
 
 	gw_node = batadv_gw_node_get(bat_priv, orig_dst_node);
-	if (!gw_node->bandwidth_down == 0)
+	if (!gw_node)
 		goto out;
 
 	switch (atomic_read(&bat_priv->gw_mode)) {