From dcc9941931fa350f1eef0e05d691f66d05abd3c4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim-Philipp=20M=C3=BCller?= Date: Sat, 7 Jul 2012 16:01:41 +0100 Subject: [PATCH] datetime: fix second parsing failure case when deserialising datetime When we fail to parse the number of seconds, reset the value to -1 instead of passing some error value as seconds. Also, we can still try to parse timezone information. --- gst/gstdatetime.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gst/gstdatetime.c b/gst/gstdatetime.c index 2784e44..e1905af 100644 --- a/gst/gstdatetime.c +++ b/gst/gstdatetime.c @@ -771,16 +771,19 @@ gst_date_time_new_from_iso8601_string (const gchar * string) if (hour > 24 || *string != ':') goto ymd; + /* minute */ minute = g_ascii_strtoull (string + 1, (gchar **) & string, 10); if (minute > 59) goto ymd; + /* second */ if (*string == ':') { second = g_ascii_strtoull (string + 1, (gchar **) & string, 10); /* if we fail here, we still can reuse hour and minute. We - * will also fall of to tzoffset = 0.0 */ - if (second > 59) - goto ymd_hms; + * will still attempt to parse any timezone information */ + if (second > 59) { + second = -1.0; + } } if (*string == 'Z') -- 2.7.4