]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Handle unlikely negative time in tor_log_err_sigsafe
authorNick Mathewson <nickm@torproject.org>
Fri, 22 Nov 2013 17:14:11 +0000 (12:14 -0500)
committerNick Mathewson <nickm@torproject.org>
Fri, 22 Nov 2013 17:14:11 +0000 (12:14 -0500)
Coverity wants this; CID 1130990.

src/common/log.c

index dffda45c57869c86f5a4f1c89652030b6227648c..9c67de320b705dcc8b2acd40335e31ebe833a0ff 100644 (file)
@@ -474,7 +474,7 @@ tor_log_err_sigsafe(const char *m, ...)
 {
   va_list ap;
   const char *x;
-  char timebuf[32];
+  char timebuf[33];
   time_t now = time(NULL);
 
   if (!m)
@@ -483,8 +483,10 @@ tor_log_err_sigsafe(const char *m, ...)
     int g = log_time_granularity / 1000;
     now -= now % g;
   }
-  timebuf[0] = '\0';
-  format_dec_number_sigsafe(now, timebuf, sizeof(timebuf));
+  timebuf[0] = now < 0 ? '-' : ' ';
+  if (now < 0) now = -now;
+  timebuf[1] = '\0';
+  format_dec_number_sigsafe(now, timebuf+1, sizeof(timebuf)-1);
   tor_log_err_sigsafe_write("\n=========================================="
                              "================== T=");
   tor_log_err_sigsafe_write(timebuf);