From 70fbcf9c0fc81d97128dfe3c8a8ee9f1452a1226 Mon Sep 17 00:00:00 2001 From: Garima Gaur Date: Tue, 27 Dec 2016 13:45:49 +0530 Subject: [PATCH] bluez: avdtpsrc: fix caps leak in error code paths https://bugzilla.gnome.org/show_bug.cgi?id=776085 --- sys/bluez/gstavdtpsrc.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/bluez/gstavdtpsrc.c b/sys/bluez/gstavdtpsrc.c index 6ca6320..f40ef00 100644 --- a/sys/bluez/gstavdtpsrc.c +++ b/sys/bluez/gstavdtpsrc.c @@ -232,6 +232,7 @@ gst_avdtp_src_getcaps (GstBaseSrc * bsrc, GstCaps * filter) value = gst_structure_get_value (structure, "mpegversion"); if (!value || !G_VALUE_HOLDS_INT (value)) { GST_ERROR_OBJECT (avdtpsrc, "Failed to get mpegversion"); + gst_caps_unref (caps); return NULL; } gst_caps_set_simple (caps, "mpegversion", G_TYPE_INT, @@ -240,6 +241,7 @@ gst_avdtp_src_getcaps (GstBaseSrc * bsrc, GstCaps * filter) value = gst_structure_get_value (structure, "channels"); if (!value || !G_VALUE_HOLDS_INT (value)) { GST_ERROR_OBJECT (avdtpsrc, "Failed to get channels"); + gst_caps_unref (caps); return NULL; } gst_caps_set_simple (caps, "channels", G_TYPE_INT, @@ -248,6 +250,7 @@ gst_avdtp_src_getcaps (GstBaseSrc * bsrc, GstCaps * filter) value = gst_structure_get_value (structure, "base-profile"); if (!value || !G_VALUE_HOLDS_STRING (value)) { GST_ERROR_OBJECT (avdtpsrc, "Failed to get base-profile"); + gst_caps_unref (caps); return NULL; } gst_caps_set_simple (caps, "base-profile", G_TYPE_STRING, @@ -261,6 +264,7 @@ gst_avdtp_src_getcaps (GstBaseSrc * bsrc, GstCaps * filter) value = gst_structure_get_value (structure, "rate"); if (!value || !G_VALUE_HOLDS_INT (value)) { GST_ERROR_OBJECT (avdtpsrc, "Failed to get sample rate"); + gst_caps_unref (caps); return NULL; } rate = g_value_get_int (value); -- 2.7.4