From: Sebastian Dröge Date: Thu, 19 Oct 2023 16:43:26 +0000 (+0300) Subject: aggregator: Take pad lock while releasing buffers when removing pads X-Git-Tag: 1.22.7~22 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0596d637e2aecd542f3d1b98da7d8ed7d323d556;p=platform%2Fupstream%2Fgstreamer.git aggregator: Take pad lock while releasing buffers when removing pads Accessing the buffers in all other places requires the pad lock and not taking it here can cause access to already freed buffers if there's concurrent access from another thread. Part-of: --- diff --git a/subprojects/gstreamer/libs/gst/base/gstaggregator.c b/subprojects/gstreamer/libs/gst/base/gstaggregator.c index a1a5b2d85a..b32b89508c 100644 --- a/subprojects/gstreamer/libs/gst/base/gstaggregator.c +++ b/subprojects/gstreamer/libs/gst/base/gstaggregator.c @@ -2032,7 +2032,9 @@ gst_aggregator_release_pad (GstElement * element, GstPad * pad) SRC_LOCK (self); gst_aggregator_pad_set_flushing (aggpad, GST_FLOW_FLUSHING, TRUE); + PAD_LOCK (aggpad); gst_buffer_replace (&aggpad->priv->peeked_buffer, NULL); + PAD_UNLOCK (aggpad); gst_element_remove_pad (element, pad); self->priv->has_peer_latency = FALSE;