fix writing of the error message to stderr by processing the varargs --- a/src/error.c +++ b/src/error.c @@ -23,7 +23,6 @@ void error_init(error_t *err, int error_code, const char *desc_fmt, ...) { va_list args; - fprintf(stderr, "error_init: %d %s", error_code, desc_fmt); daemon_assert(err != NULL); daemon_assert(error_code >= 0); daemon_assert(desc_fmt != NULL); @@ -32,6 +31,7 @@ void error_init(error_t *err, int error_code, const char *desc_fmt, ...) va_start(args, desc_fmt); vsnprintf(err->desc, sizeof(err->desc), desc_fmt, args); va_end(args); + fprintf(stderr, "error_init: %d %s\n", error_code, err->desc); daemon_assert(invariant(err)); }