Patch from Sven-Ola
authorAndreas Tonnesen <andreto@olsr.org>
Sat, 8 Oct 2005 15:43:56 +0000 (15:43 +0000)
committerAndreas Tonnesen <andreto@olsr.org>
Sat, 8 Oct 2005 15:43:56 +0000 (15:43 +0000)
src/lq_packet.c
src/net_olsr.c

index 6fbaf22..dd068c6 100644 (file)
@@ -37,7 +37,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: lq_packet.c,v 1.16 2005/05/25 13:36:41 kattemat Exp $
+ * $Id: lq_packet.c,v 1.17 2005/10/08 15:43:56 kattemat Exp $
  */
 
 #include "olsr_protocol.h"
@@ -773,6 +773,12 @@ process_lq_hello(struct lq_hello_message *lq_hello, struct interface *inif,
   struct lq_hello_neighbor *neigh;
   struct hello_neighbor *new_neigh;
 
+  // SVEN_OLA: Check the message source addr
+  if(!olsr_validate_address(&lq_hello->comm.orig))
+    {
+      return;
+    }
+
   // XXX - translation is ugly; everybody should use lq_hello_message :-)
 
   // move the static fields from LQ_HELLO to HELLO
@@ -793,6 +799,9 @@ process_lq_hello(struct lq_hello_message *lq_hello, struct interface *inif,
 
   for (neigh = lq_hello->neigh; neigh != NULL; neigh = neigh->next)
     {
+      // SVEN_OLA: Also check the neighbours
+      if(!olsr_validate_address(&neigh->addr)) continue;
+      
       // allocate HELLO neighbour
 
       new_neigh = olsr_malloc(sizeof (struct hello_neighbor),
@@ -824,6 +833,12 @@ process_lq_tc(struct lq_tc_message *lq_tc, struct interface *inif,
   struct lq_tc_neighbor *neigh;
   struct tc_mpr_addr *new_neigh;
 
+  // SVEN_OLA: Check the message source addr
+  if(!olsr_validate_address(&lq_tc->from)||!olsr_validate_address(&lq_tc->comm.orig))
+    {
+      return;
+    }
+
   // XXX - translation is ugly; everybody should use lq_tc_message :-)
 
   // move the static fields from LQ_TC to TC
@@ -844,6 +859,9 @@ process_lq_tc(struct lq_tc_message *lq_tc, struct interface *inif,
 
   for (neigh = lq_tc->neigh; neigh != NULL; neigh = neigh->next)
     {
+      // SVEN_OLA: Also check the neighbours
+      if(!olsr_validate_address(&neigh->main)) continue;
+      
       // allocate TC neighbour
 
       new_neigh = olsr_malloc(sizeof (struct tc_mpr_addr),
index 8c16213..b8e1b23 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: net_olsr.c,v 1.3 2005/05/30 13:13:38 kattemat Exp $
+ * $Id: net_olsr.c,v 1.4 2005/10/08 15:43:56 kattemat Exp $
  */
 
 #include "net_olsr.h"
@@ -72,6 +72,8 @@ static struct deny_address_entry *deny_entries;
 static char *deny_ipv4_defaults[] =
   {
     "0.0.0.0",
+    //SVEN_OLA: This address is not plausible too
+    "127.0.0.1",
     NULL
   };