From: Tor Lillqvist Date: Sat, 22 Jan 2005 22:10:45 +0000 (+0000) Subject: Don't g_assert that localtime() returns non-NULL. It does return NULL at X-Git-Tag: GLIB_2_7_0~205 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=76d763485bdf98142b4ebff300f59ad8534d044e;p=platform%2Fupstream%2Fglib.git Don't g_assert that localtime() returns non-NULL. It does return NULL at 2005-01-22 Tor Lillqvist * glib/gdate.c (g_date_set_time): Don't g_assert that localtime() returns non-NULL. It does return NULL at least on Win32 if you pass it a negative time_t, which although wrong, shouldn't cause an application to abort. Instead return 2000-01-01 as a default date. Print a warning unless G_DISABLE_CHECKS. (#164622) --- diff --git a/ChangeLog b/ChangeLog index cab683939..14b7d01b7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2005-01-22 Tor Lillqvist + + * glib/gdate.c (g_date_set_time): Don't g_assert that localtime() + returns non-NULL. It does return NULL at least on Win32 if you + pass it a negative time_t, which although wrong, shouldn't cause + an application to abort. Instead return 2000-01-01 as a default + date. Print a warning unless G_DISABLE_CHECKS. (#164622) + 2005-01-20 Matthias Clasen * glib/gkeyfile.c (g_key_file_parse_value_as_integer): Don't diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index cab683939..14b7d01b7 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,11 @@ +2005-01-22 Tor Lillqvist + + * glib/gdate.c (g_date_set_time): Don't g_assert that localtime() + returns non-NULL. It does return NULL at least on Win32 if you + pass it a negative time_t, which although wrong, shouldn't cause + an application to abort. Instead return 2000-01-01 as a default + date. Print a warning unless G_DISABLE_CHECKS. (#164622) + 2005-01-20 Matthias Clasen * glib/gkeyfile.c (g_key_file_parse_value_as_integer): Don't diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index cab683939..14b7d01b7 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,3 +1,11 @@ +2005-01-22 Tor Lillqvist + + * glib/gdate.c (g_date_set_time): Don't g_assert that localtime() + returns non-NULL. It does return NULL at least on Win32 if you + pass it a negative time_t, which although wrong, shouldn't cause + an application to abort. Instead return 2000-01-01 as a default + date. Print a warning unless G_DISABLE_CHECKS. (#164622) + 2005-01-20 Matthias Clasen * glib/gkeyfile.c (g_key_file_parse_value_as_integer): Don't diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index cab683939..14b7d01b7 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,11 @@ +2005-01-22 Tor Lillqvist + + * glib/gdate.c (g_date_set_time): Don't g_assert that localtime() + returns non-NULL. It does return NULL at least on Win32 if you + pass it a negative time_t, which although wrong, shouldn't cause + an application to abort. Instead return 2000-01-01 as a default + date. Print a warning unless G_DISABLE_CHECKS. (#164622) + 2005-01-20 Matthias Clasen * glib/gkeyfile.c (g_key_file_parse_value_as_integer): Don't diff --git a/glib/gdate.c b/glib/gdate.c index 73066a482..b29524c34 100644 --- a/glib/gdate.c +++ b/glib/gdate.c @@ -884,8 +884,22 @@ g_date_set_time (GDate *d, #else { struct tm *ptm = localtime (&t); - g_assert (ptm); - memcpy ((void *) &tm, (void *) ptm, sizeof(struct tm)); + + if (ptm == NULL) + { + /* Happens at least in Microsoft's C library if you pass a + * negative time_t. Use 2000-01-01 as default date. + */ +#ifndef G_DISABLE_CHECKS + g_return_if_fail_warning (G_LOG_DOMAIN, "g_date_set_time", "ptm != NULL"); +#endif + + tm.tm_mon = 0; + tm.tm_mday = 1; + tm.tm_year = 100; + } + else + memcpy ((void *) &tm, (void *) ptm, sizeof(struct tm)); } #endif