tee: Lock mutex before reading the removed flag of the pads

Otherwise we're not guaranteed to read the very latest value that
another thread might've written in there when the pad was released, and
could instead work with an old value.
This commit is contained in:
Sebastian Dröge 2019-10-25 01:39:05 +03:00 committed by Tim-Philipp Müller
parent e6f55805b4
commit 94c765a173

View file

@ -899,12 +899,14 @@ gst_tee_handle_data (GstTee * tee, gpointer data, gboolean is_list)
ret = gst_pad_push (pad, GST_BUFFER_CAST (data));
}
GST_OBJECT_LOCK (tee);
if (GST_TEE_PAD_CAST (pad)->removed)
ret = GST_FLOW_NOT_LINKED;
if (ret == GST_FLOW_NOT_LINKED && tee->allow_not_linked) {
ret = GST_FLOW_OK;
}
GST_OBJECT_UNLOCK (tee);
gst_object_unref (pad);