diff --git a/src/core.c b/src/core.c index 63d904d..909caa1 100644 --- a/src/core.c +++ b/src/core.c @@ -364,17 +364,23 @@ void chroma_log(const char *level, const char *format, ...) { va_list args; char timestamp[32]; + int truncation_check = 0; struct timeval tv; struct tm *tm_info; gettimeofday(&tv, NULL); tm_info = localtime(&tv.tv_sec); - snprintf(timestamp, sizeof(timestamp), "%04d-%02d-%02d %02d:%02d:%02d.%03d", + truncation_check = snprintf(timestamp, sizeof(timestamp), "%04d-%02d-%02d %02d:%02d:%02d.%03d", tm_info->tm_year + 1900, tm_info->tm_mon + 1, tm_info->tm_mday, tm_info->tm_hour, tm_info->tm_min, tm_info->tm_sec, (int)(tv.tv_usec / 1000)); + if(truncation_check > 32 || truncation_check < 0) { + // Something went seriously wrong with the snprintf, this is a fairly serious error as + // the timestamp may be incomplete or corrupted, so print a warning + printf("Following timestamp may be incomplete, truncated or corrupted!\n"); + } printf("[%s] %s: ", timestamp, level); va_start(args, format); diff --git a/systemd/chroma.service b/systemd/chroma.service index 54a09a5..369a898 100644 --- a/systemd/chroma.service +++ b/systemd/chroma.service @@ -21,4 +21,4 @@ ProtectHome=read-only ReadWritePaths=%h/.config/chroma [Install] -WantedBy=multi-useer.target +WantedBy=multi-user.target