gstaggregator: fix event use after free
[platform/upstream/gstreamer.git] / libs / gst / base / gstaggregator.c
index 7e8c5be..d693541 100644 (file)
@@ -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;
     }
   }