mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-23 14:36:24 +00:00
gstvalue: fix leak in gst_value_deserialize_g_date_time()
gst_date_time_to_g_date_time() does not take ownership. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8515>
This commit is contained in:
parent
8162b4ec86
commit
1b04ec5cb2
1 changed files with 8 additions and 2 deletions
|
@ -7521,6 +7521,7 @@ gst_value_serialize_g_date_time (const GValue * val)
|
|||
static gboolean
|
||||
gst_value_deserialize_g_date_time (GValue * dest, const gchar * s)
|
||||
{
|
||||
GstDateTime *gst_datetime;
|
||||
GDateTime *datetime;
|
||||
|
||||
if (!s || strcmp (s, "null") == 0) {
|
||||
|
@ -7528,8 +7529,13 @@ gst_value_deserialize_g_date_time (GValue * dest, const gchar * s)
|
|||
}
|
||||
|
||||
/* The Gstreamer iso8601 parser is a bit more forgiving */
|
||||
datetime =
|
||||
gst_date_time_to_g_date_time (gst_date_time_new_from_iso8601_string (s));
|
||||
gst_datetime = gst_date_time_new_from_iso8601_string (s);
|
||||
if (gst_datetime == NULL) {
|
||||
GST_WARNING ("Failed to deserialize date time string '%s'", s);
|
||||
return FALSE;
|
||||
}
|
||||
datetime = gst_date_time_to_g_date_time (gst_datetime);
|
||||
gst_date_time_unref (gst_datetime);
|
||||
if (datetime != NULL) {
|
||||
g_value_take_boxed (dest, datetime);
|
||||
return TRUE;
|
||||
|
|
Loading…
Reference in a new issue