diff options
-rw-r--r-- | sysdep/unix/log.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sysdep/unix/log.c b/sysdep/unix/log.c index b9077c7..00589a3 100644 --- a/sysdep/unix/log.c +++ b/sysdep/unix/log.c @@ -50,8 +50,11 @@ bvfprintf(FILE *f, char *fmt, va_list args) char buf[4096]; int n; - n = bvsprintf(buf, fmt, args); - fwrite(buf, n, sizeof(char), f); + n = bvsnprintf(buf, sizeof(buf), fmt, args); + if (n >= 0) + fwrite(buf, n, sizeof(char), f); + else + fprintf(stderr, "BIRD: warning: logging buffer overflow!\n"); } static void |