Commit 0eb9dde1 authored by Vineeth TM's avatar Vineeth TM Committed by Sebastian Dröge
Browse files

value: free caps during failure

While calling gst_value_deserialize_sample, if there is a failure
after caps is ref'ed, then caps is getting leaked. Hence checking for
caps in fail: goto condition and unref'ing it

https://bugzilla.gnome.org/show_bug.cgi?id=753338
parent 749810b2
......@@ -2445,7 +2445,7 @@ gst_value_deserialize_sample (GValue * dest, const gchar * s)
GValue bval = G_VALUE_INIT, sval = G_VALUE_INIT;
GstStructure *info;
GstSample *sample;
GstCaps *caps;
GstCaps *caps = NULL;
gboolean ret = FALSE;
gchar **fields;
gsize outlen;
......@@ -2471,8 +2471,6 @@ gst_value_deserialize_sample (GValue * dest, const gchar * s)
caps = gst_caps_from_string (fields[1]);
if (caps == NULL)
goto fail;
} else {
caps = NULL;
}
if (strcmp (fields[2], "None") != 0) {
......@@ -2499,13 +2497,11 @@ gst_value_deserialize_sample (GValue * dest, const gchar * s)
g_value_take_boxed (dest, sample);
if (caps)
gst_caps_unref (caps);
ret = TRUE;
fail:
if (caps)
gst_caps_unref (caps);
g_value_unset (&bval);
g_value_unset (&sval);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment