summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Dufresne <nicolas.dufresne@collabora.com>2020-10-15 11:35:04 -0400
committerTim-Philipp Müller <tim@centricular.com>2020-10-16 10:52:22 +0100
commitf0ee607b102b0fbc0eb7ed942f528452f831f95c (patch)
treefab6a8c84f35b341824242ed74a749b6819f7979
parent12112921307d698e267329a26a7368dbb6b8d5c2 (diff)
downloadgstreamer-plugins-bad-f0ee607b102b0fbc0eb7ed942f528452f831f95c.tar.gz
v4l2codecs: decoder: Properly remove pending requests
Pass the pointer instead of NULL in order to find and remove properly any pending request from the queue. This coding error was leading to use after free in error and early exit cases. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1701>
-rw-r--r--sys/v4l2codecs/gstv4l2decoder.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/v4l2codecs/gstv4l2decoder.c b/sys/v4l2codecs/gstv4l2decoder.c
index fad7d7485..8c2e93874 100644
--- a/sys/v4l2codecs/gstv4l2decoder.c
+++ b/sys/v4l2codecs/gstv4l2decoder.c
@@ -854,7 +854,7 @@ gst_v4l2_request_free (GstV4l2Request * request)
GST_DEBUG_OBJECT (decoder, "Freeing pending request %p.", request);
- idx = gst_queue_array_find (decoder->pending_requests, NULL, NULL);
+ idx = gst_queue_array_find (decoder->pending_requests, NULL, request);
if (idx >= 0)
gst_queue_array_drop_element (decoder->pending_requests, idx);