diff --git a/gst-libs/gst/rtp/gstbasertpdepayload.c b/gst-libs/gst/rtp/gstbasertpdepayload.c index 58489b14da..94ca7edc96 100644 --- a/gst-libs/gst/rtp/gstbasertpdepayload.c +++ b/gst-libs/gst/rtp/gstbasertpdepayload.c @@ -481,12 +481,15 @@ gst_base_rtp_depayload_handle_sink_event (GstPad * pad, GstEvent * event) GstBaseRTPDepayload *filter; GstBaseRTPDepayloadClass *bclass; - filter = GST_BASE_RTP_DEPAYLOAD (GST_OBJECT_PARENT (pad)); + filter = GST_BASE_RTP_DEPAYLOAD (gst_pad_get_parent (pad)); + if (G_UNLIKELY (filter == NULL)) + return FALSE; bclass = GST_BASE_RTP_DEPAYLOAD_GET_CLASS (filter); if (bclass->handle_event) res = bclass->handle_event (filter, event); + gst_object_unref (filter); return res; } diff --git a/gst-libs/gst/rtp/gstbasertppayload.c b/gst-libs/gst/rtp/gstbasertppayload.c index a389185589..a04e308840 100644 --- a/gst-libs/gst/rtp/gstbasertppayload.c +++ b/gst-libs/gst/rtp/gstbasertppayload.c @@ -383,6 +383,8 @@ gst_basertppayload_event (GstPad * pad, GstEvent * event) gboolean res; basertppayload = GST_BASE_RTP_PAYLOAD (gst_pad_get_parent (pad)); + if (G_UNLIKELY (basertppayload == NULL)) + return FALSE; basertppayload_class = GST_BASE_RTP_PAYLOAD_GET_CLASS (basertppayload); if (basertppayload_class->handle_event) {