From f6cb16ab8cecfe683473b173732ad040e858abd5 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: [PATCH] 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 750571e6f1..f00f3d6f1c 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;