diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2020-12-01 13:13:40 +0200 |
---|---|---|
committer | GStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org> | 2020-12-02 16:26:40 +0000 |
commit | ee38a96c83661ab58a1a61196a6c6ae875393e28 (patch) | |
tree | f988abbaef88f5921e8dc7b46db39bc2d2feebe0 | |
parent | 450d1560732523fd0b2bb9701cb1828c820ef63a (diff) | |
download | gstreamer-plugins-base-ee38a96c83661ab58a1a61196a6c6ae875393e28.tar.gz |
compositor: Don't crash in prepare_frame() if the pad was just removed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/955>
-rw-r--r-- | gst/compositor/compositor.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gst/compositor/compositor.c b/gst/compositor/compositor.c index 9c2e0ee46..45f3e78f0 100644 --- a/gst/compositor/compositor.c +++ b/gst/compositor/compositor.c @@ -416,7 +416,10 @@ gst_compositor_pad_prepare_frame (GstVideoAggregatorPad * pad, /* Check if this frame is obscured by a higher-zorder frame * TODO: Also skip a frame if it's obscured by a combination of * higher-zorder frames */ - l = g_list_find (GST_ELEMENT (vagg)->sinkpads, pad)->next; + l = g_list_find (GST_ELEMENT (vagg)->sinkpads, pad); + /* The pad might've just been removed */ + if (l) + l = l->next; for (; l; l = l->next) { if (_pad_obscures_rectangle (vagg, l->data, frame_rect)) { frame_obscured = TRUE; |