[B.A.T.M.A.N.] [PATCHv2 2/2] batman-adv: fix bla compare function

2012-10-15 Thread Simon Wunderlich
The address and the VLAN VID may not be packed in the respective
structs. Fix this by comparing the elements individually.

Reported-by: Marek Lindner lindner_ma...@yahoo.de
Reported-by: Sven Eckelmann s...@narfation.org
Signed-off-by: Simon Wunderlich s...@hrz.tu-chemnitz.de
---
 bridge_loop_avoidance.c |   18 --
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/bridge_loop_avoidance.c b/bridge_loop_avoidance.c
index 758d921..a617f2c 100644
--- a/bridge_loop_avoidance.c
+++ b/bridge_loop_avoidance.c
@@ -77,8 +77,15 @@ static int batadv_compare_backbone_gw(const struct 
hlist_node *node,
 {
const void *data1 = container_of(node, struct batadv_backbone_gw,
 hash_entry);
+   const struct batadv_backbone_gw *gw1 = data1, *gw2 = data2;
 
-   return (memcmp(data1, data2, ETH_ALEN + sizeof(short)) == 0 ? 1 : 0);
+   if (memcmp(gw1-orig, gw2-orig, ETH_ALEN))
+   return 0;
+
+   if (gw1-vid != gw2-vid)
+   return 0;
+
+   return 1;
 }
 
 /* compares address and vid of two claims */
@@ -87,8 +94,15 @@ static int batadv_compare_claim(const struct hlist_node 
*node,
 {
const void *data1 = container_of(node, struct batadv_claim,
 hash_entry);
+   const struct batadv_claim *cl1 = data1, *cl2 = data2;
 
-   return (memcmp(data1, data2, ETH_ALEN + sizeof(short)) == 0 ? 1 : 0);
+   if (memcmp(cl1-addr, cl2-addr, ETH_ALEN))
+   return 0;
+
+   if (cl1-vid != cl2-vid)
+   return 0;
+
+   return 1;
 }
 
 /* free a backbone gw */
-- 
1.7.10



Re: [B.A.T.M.A.N.] [PATCHv2 2/2] batman-adv: fix bla compare function

2012-10-15 Thread Marek Lindner
On Tuesday, October 16, 2012 04:38:04 Simon Wunderlich wrote:
 The address and the VLAN VID may not be packed in the respective
 structs. Fix this by comparing the elements individually.
 
 Reported-by: Marek Lindner lindner_ma...@yahoo.de
 Reported-by: Sven Eckelmann s...@narfation.org
 Signed-off-by: Simon Wunderlich s...@hrz.tu-chemnitz.de
 ---
  bridge_loop_avoidance.c |   18 --
  1 file changed, 16 insertions(+), 2 deletions(-)

Applied in revision 923d5d1.

Thanks,
Marek