Skip to content
This repository has been archived by the owner on Nov 17, 2020. It is now read-only.

Commit

Permalink
Initialise variable in g_time_val_from_iso8601()
Browse files Browse the repository at this point in the history
The function does not initialise the struct tm,
giving it improper values of tm_isdst making the result
an hour out.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=603540
(cherry picked from commit 2321e5a)
  • Loading branch information
endomandi authored and Matthias Clasen committed Dec 10, 2009
1 parent 31f928a commit 3a7a950
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions glib/gtimer.c
Expand Up @@ -301,7 +301,7 @@ gboolean
g_time_val_from_iso8601 (const gchar *iso_date,
GTimeVal *time_)
{
struct tm tm;
struct tm tm = {0};
long val;

g_return_val_if_fail (iso_date != NULL, FALSE);
Expand All @@ -328,7 +328,7 @@ g_time_val_from_iso8601 (const gchar *iso_date,
tm.tm_mon = strtoul (iso_date, (char **)&iso_date, 10) - 1;

if (*iso_date++ != '-')
return FALSE;
return FALSE;

tm.tm_mday = strtoul (iso_date, (char **)&iso_date, 10);
}
Expand Down Expand Up @@ -390,7 +390,7 @@ g_time_val_from_iso8601 (const gchar *iso_date,
val = strtoul (iso_date + 1, (char **)&iso_date, 10);

if (*iso_date == ':')
val = 60 * val + strtoul (iso_date + 1, (char **)&iso_date, 10);
val = 60 * val + strtoul (iso_date + 1, (char **)&iso_date, 10);
else
val = 60 * (val / 100) + (val % 100);

Expand All @@ -399,6 +399,7 @@ g_time_val_from_iso8601 (const gchar *iso_date,
else
{
/* No "Z" or offset, so local time */
tm.tm_isdst = -1; /* locale selects DST */
time_->tv_sec = mktime (&tm);
}

Expand Down

0 comments on commit 3a7a950

Please sign in to comment.