]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Log: Fix error handling of debug file open
authorOndrej Zajicek (work) <santiago@crfreenet.org>
Mon, 11 Jul 2016 18:22:55 +0000 (20:22 +0200)
committerOndrej Zajicek (work) <santiago@crfreenet.org>
Mon, 11 Jul 2016 18:22:55 +0000 (20:22 +0200)
Logging is not yet initialized, we have to use fprintf() here.

Thanks to Pavel Tvrdik for noticing and debugging it.

sysdep/unix/log.c

index 631bd691644a47c4348d8835407b4435e7202ecd..1fd64426588cd85f568d0b4507b768fdaeed287c 100644 (file)
@@ -20,6 +20,7 @@
 #include <stdarg.h>
 #include <time.h>
 #include <unistd.h>
+#include <errno.h>
 
 #include "nest/bird.h"
 #include "nest/cli.h"
@@ -314,7 +315,11 @@ log_init_debug(char *f)
   else if (!*f)
     dbgf = stderr;
   else if (!(dbgf = fopen(f, "a")))
-    log(L_ERR "Error opening debug file `%s': %m", f);
+  {
+    /* Cannot use die() nor log() here, logging is not yet initialized */
+    fprintf(stderr, "bird: Unable to open debug file %s: %s\n", f, strerror(errno));
+    exit(1);
+  }
   if (dbgf)
     setvbuf(dbgf, NULL, _IONBF, 0);
 }