fix segfault when printing "You must be root" 25/head
authorNeels Hofmeyr <neels@hofmeyr.de>
Thu, 15 Jun 2017 21:36:37 +0000 (23:36 +0200)
committerNeels Hofmeyr <neels@hofmeyr.de>
Thu, 22 Jun 2017 19:33:14 +0000 (21:33 +0200)
When olsr_cnf is NULL, always print OLSR_PRINTF messages to avoid segfault.

I compiled olsrd and ran ./olsrd --help, resulting in a segfault.
That's because main.c prints an error message even before the config is loaded,
so that OLSR_PRINTF tries to lookup the logging level in a NULL olsr_cnf.

Signed-off-by: Neels Hofmeyr <neels@hofmeyr.de>
src/defs.h

index d9ce8ba..8c4435e 100644 (file)
@@ -90,7 +90,7 @@ extern FILE *debug_handle;
 #define OLSR_PRINTF(lvl, format, args...) do { } while(0)
 #else /* NODEBUG */
 #define OLSR_PRINTF(lvl, format, args...) do {                    \
-    if((olsr_cnf->debug_level >= (lvl)) && debug_handle)          \
+    if((!olsr_cnf || olsr_cnf->debug_level >= (lvl)) && debug_handle)          \
       fprintf(debug_handle, (format), ##args);                    \
   } while (0)
 #endif /* NODEBUG */