From d5f42683ef2b90c4cde14cd5eb2c48b5ef520ba0 Mon Sep 17 00:00:00 2001 From: Vincent Penquerc'h Date: Fri, 7 Apr 2017 10:19:43 +0100 Subject: [PATCH] gstaggregator: fix event use after free https://bugzilla.gnome.org/show_bug.cgi?id=781017 --- libs/gst/base/gstaggregator.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/libs/gst/base/gstaggregator.c b/libs/gst/base/gstaggregator.c index 7e8c5be..d693541 100644 --- a/libs/gst/base/gstaggregator.c +++ b/libs/gst/base/gstaggregator.c @@ -2351,17 +2351,12 @@ gst_aggregator_pad_event_func (GstPad * pad, GstObject * parent, } if (event) { + gboolean is_caps = (GST_EVENT_TYPE (event) == GST_EVENT_CAPS); + if (!klass->sink_event (self, aggpad, event)) { /* Copied from GstPad to convert boolean to a GstFlowReturn in * the event handling func */ - switch (GST_EVENT_TYPE (event)) { - case GST_EVENT_CAPS: - ret = GST_FLOW_NOT_NEGOTIATED; - break; - default: - ret = GST_FLOW_ERROR; - break; - } + ret = is_caps ? GST_FLOW_NOT_NEGOTIATED : GST_FLOW_ERROR; } } -- 2.7.4