From d6f6c51f3c3e7ca7667f128b2cabe207775e38f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Sun, 10 May 2020 11:23:02 +0300 Subject: [PATCH] spanplc: Don't segfault when retrieving the stats property without a spanplc context For example when trying to get the property value in NULL state. Part-of: --- ext/spandsp/gstspanplc.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/ext/spandsp/gstspanplc.c b/ext/spandsp/gstspanplc.c index 94bfde6c9a..602c6f07c2 100644 --- a/ext/spandsp/gstspanplc.c +++ b/ext/spandsp/gstspanplc.c @@ -75,16 +75,18 @@ static gboolean gst_span_plc_event_sink (GstPad * pad, GstObject * parent, static GstStructure * gst_span_plc_create_stats (GstSpanPlc * self) { - GstStructure *s; + GstStructure *s = NULL; GST_OBJECT_LOCK (self); - s = gst_structure_new ("application/x-spanplc-stats", - "num-pushed", G_TYPE_UINT64, self->num_pushed, - "num-gap", G_TYPE_UINT64, self->num_gap, - "plc-num-samples", G_TYPE_UINT64, self->plc_num_samples, - "plc-duration", G_TYPE_UINT64, self->plc_duration, - "pitch", G_TYPE_INT, self->plc_state->pitch, - "pitch-offset", G_TYPE_INT, self->plc_state->pitch_offset, NULL); + if (self->plc_state) { + s = gst_structure_new ("application/x-spanplc-stats", + "num-pushed", G_TYPE_UINT64, self->num_pushed, + "num-gap", G_TYPE_UINT64, self->num_gap, + "plc-num-samples", G_TYPE_UINT64, self->plc_num_samples, + "plc-duration", G_TYPE_UINT64, self->plc_duration, + "pitch", G_TYPE_INT, self->plc_state->pitch, + "pitch-offset", G_TYPE_INT, self->plc_state->pitch_offset, NULL); + } GST_OBJECT_UNLOCK (self); return s;