[glib] Fix a 32-bit time_t cast



commit 69ea026fbcfeeb81110ab5b88012d0efde2c2f34
Author: Руслан Ижбулатов <lrn1986 gmail com>
Date:   Sat Dec 2 11:39:12 2017 +0000

    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

 glib/gmessages.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
---
diff --git a/glib/gmessages.c b/glib/gmessages.c
index 8c9f558..cb2abd5 100644
--- a/glib/gmessages.c
+++ b/glib/gmessages.c
@@ -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);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]