Fix a 32-bit time_t cast

Divide first, *then* cast. Otherwise a very long "now", which is
64-bit, gets truncated into a 32-bit time_t, which can't hold the
value, and turns negative more often than not.

https://bugzilla.gnome.org/show_bug.cgi?id=791128
This commit is contained in:
Руслан Ижбулатов 2017-12-02 11:39:12 +00:00
parent 532f1edd88
commit 69ea026fbc

View File

@ -2268,7 +2268,7 @@ g_log_writer_format_fields (GLogLevelFlags log_level,
/* Timestamp */
now = g_get_real_time ();
now_secs = (time_t) now / 1000000;
now_secs = (time_t) (now / 1000000);
now_tm = localtime (&now_secs);
strftime (time_buf, sizeof (time_buf), "%H:%M:%S", now_tm);