Hi...
I've got a problem with the code below. It works the first time it's called. But if/when I call it a second time, the application crashes.
What have I done wrong?
Code:
#include <stdarg.h>
void log_message(char* str, ...) {
char* logstr;
va_list vargs;
char time_str[18];
time_t t;
struct tm* time_now;
if (!opts_log_stream) return;
t = time(NULL);
time_now = localtime(&t);
strftime(time_str, sizeof(time_str), "%y-%m-%d %H:%M:%S", time_now);
logstr = str_dupf("%s: %s\n", time_str, str);
va_start(vargs, str);
vfprintf(opts_log_stream, logstr, vargs);
va_end(vargs);
free(logstr);
free(time_now);
}