From b8ef897d0847d4abdd2855cde25ef8db0aae4d01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Manuel=20J=C3=A1quez=20Leal?= Date: Mon, 29 Jan 2018 12:53:51 +0100 Subject: gdpdepay: don't use allocator if it has custom alloc gdpdepay element uses the decide_allocation to fetch the downstream allocator. Nonetheless it is possible that allocate uses a custom alloc function, which is not usable by gdpdepay, crashing later the application when the allocater buffer is NULL. This patch checks for the allocator flags and reset it if the allocator has a custom alloc function. https://bugzilla.gnome.org/show_bug.cgi?id=789476 --- gst/gdp/gstgdpdepay.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gst/gdp/gstgdpdepay.c b/gst/gdp/gstgdpdepay.c index 750571e6f..f00f3d6f1 100644 --- a/gst/gdp/gstgdpdepay.c +++ b/gst/gdp/gstgdpdepay.c @@ -580,6 +580,15 @@ gst_gdp_depay_decide_allocation (GstGDPDepay * gdpdepay) if (gdpdepay->allocator) gst_object_unref (gdpdepay->allocator); + if (allocator && + GST_OBJECT_FLAG_IS_SET (allocator, GST_ALLOCATOR_FLAG_CUSTOM_ALLOC)) { + GST_DEBUG_OBJECT (gdpdepay, + "Provided allocator has a custom alloc fuction. Ignoring."); + gst_object_unref (allocator); + allocator = NULL; + gst_allocation_params_init (¶ms); + } + gdpdepay->allocator = allocator; gdpdepay->allocation_params = params; -- cgit v1.2.1