Fix segfault in cfgparser standalone executable
authorHenning Rogge <henning.rogge@fkie.fraunhofer.de>
Tue, 25 Jun 2013 09:03:24 +0000 (11:03 +0200)
committerHenning Rogge <henning.rogge@fkie.fraunhofer.de>
Tue, 25 Jun 2013 09:03:24 +0000 (11:03 +0200)
.gitignore
src/cfgparser/Makefile
src/cfgparser/olsrd_conf.c

index e54968f..fff34a6 100644 (file)
@@ -25,4 +25,5 @@
 /olsrd.exe
 /olsr_switch
 /olsr_switch.exe
-/olsr-setup.exe
\ No newline at end of file
+/olsr-setup.exe
+/src/cfgparser/olsrd_cfgparser
index d318410..6ace3c1 100644 (file)
@@ -50,12 +50,14 @@ ifeq ($(OS), win32)
 
 LIBNAME ?=     olsrd_cfgparser.dll
 BINNAME ?=     olsrd_cfgparser.exe
-OBJS +=                ../win32/compat.o ../ipcalc.o ../builddata.o
+OBJS +=                ../win32/compat.o ../ipcalc.o ../builddata.o ../common/autobuf.o
 
 else
 
 LIBNAME ?=     olsrd_cfgparser.so.0.1
 BINNAME ?=     olsrd_cfgparser
+
+OBJS +=                ../ipcalc.o ../builddata.o ../common/autobuf.o
 endif
 
 
index ca856f5..584e0f6 100644 (file)
@@ -100,17 +100,17 @@ struct olsrd_config *olsr_cnf;         /* The global configuration */
 int
 main(int argc, char *argv[])
 {
-  struct olsrd_config *cnf;
-
   if (argc == 1) {
     fprintf(stderr, "Usage: olsrd_cfgparser [filename] -print\n\n");
     exit(EXIT_FAILURE);
   }
 
-  if ((cnf = olsrd_parse_cnf(argv[1])) == 0) {
+  olsr_cnf = olsrd_get_default_cnf();
+
+  if (olsrd_parse_cnf(argv[1]) == 0) {
     if ((argc > 2) && (!strcmp(argv[2], "-print"))) {
-      olsrd_print_cnf(cnf);
-      olsrd_write_cnf(cnf, "./out.conf");
+      olsrd_print_cnf(olsr_cnf);
+      olsrd_write_cnf(olsr_cnf, "./out.conf");
     } else
       printf("Use -print to view parsed values\n");
     printf("Configfile parsed OK\n");
@@ -121,6 +121,10 @@ main(int argc, char *argv[])
   return 0;
 }
 
+void
+olsr_startup_sleep(int seconds __attribute__((unused))) {
+}
+
 #else /* MAKEBIN */
 
 /* Build as part of olsrd */