Fix a build break for BSD and two possible buffer overflows
authorHenning Rogge <hrogge@googlemail.com>
Sun, 1 Feb 2009 19:38:37 +0000 (20:38 +0100)
committerHenning Rogge <hrogge@googlemail.com>
Sun, 1 Feb 2009 19:38:37 +0000 (20:38 +0100)
lib/dyn_gw/src/olsrd_dyn_gw.c
lib/dyn_gw_plain/src/olsrd_dyn_gw_plain.c
src/olsr_logging.c

index 6bda706..1c8396a 100644 (file)
@@ -155,7 +155,7 @@ static int set_plugin_hna(const char *value, void *data __attribute__((unused)),
     char s_mask[128];
 
     //192.168.1.0  255.255.255.0
-    int i = sscanf(value,"%128s %128s", s_netaddr, s_mask);
+    int i = sscanf(value,"%127s %127s", s_netaddr, s_mask);
     if (i != 2) {
         OLSR_PRINTF(0, "Cannot get IP address and netmask from \"%s\"", value);
         return 1;
index 6c3715d..4804e21 100644 (file)
@@ -114,7 +114,7 @@ olsrd_plugin_init(void)
 int
 check_gw(union olsr_ip_addr *net, union olsr_ip_addr *mask)
 {
-  char buff[1024], iface[16];
+  char buff[1024], iface[17];
   uint32_t gate_addr, dest_addr, netmask;
   unsigned int iflags;
   int num, metric, refcnt, use;
index 28a879a..db442fd 100644 (file)
@@ -214,7 +214,7 @@ void olsr_log (enum log_severity severity, enum log_source source, const char *f
 
   /* calculate local time */
   gettimeofday(&timeval, NULL);
-  localtime_r ( &timeval.tv_sec, &now );
+  localtime_r ( (time_t *) &timeval.tv_sec, &now );
 
   /* generate log string (insert file/line in DEBUG mode) */
 #if DEBUG