From bfc45675862b2e8ba0daa2df5e0bff5a8abfd66d Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Fri, 23 Mar 2018 14:24:38 +0100 Subject: [PATCH] audio-aggregator: Check return values And copy over already-parsed information CID #1427140 --- gst-libs/gst/audio/gstaudioaggregator.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gst-libs/gst/audio/gstaudioaggregator.c b/gst-libs/gst/audio/gstaudioaggregator.c index e75b8e53e2..088a91ca97 100644 --- a/gst-libs/gst/audio/gstaudioaggregator.c +++ b/gst-libs/gst/audio/gstaudioaggregator.c @@ -699,7 +699,10 @@ gst_audio_aggregator_sink_setcaps (GstAudioAggregatorPad * aaggpad, goto done; } - gst_audio_info_from_caps (&info, caps); + if (!gst_audio_info_from_caps (&info, caps)) { + GST_WARNING_OBJECT (agg, "Rejecting invalid caps: %" GST_PTR_FORMAT, caps); + return FALSE; + } s = gst_caps_get_structure (downstream_caps, 0); /* TODO: handle different rates on sinkpads, a bit complex @@ -715,7 +718,7 @@ gst_audio_aggregator_sink_setcaps (GstAudioAggregatorPad * aaggpad, GstAudioAggregatorPadClass *klass = GST_AUDIO_AGGREGATOR_PAD_GET_CLASS (aaggpad); GST_OBJECT_LOCK (aaggpad); - gst_audio_info_from_caps (&aaggpad->info, caps); + aaggpad->info = info; if (klass->update_conversion_info) klass->update_conversion_info (aaggpad); GST_OBJECT_UNLOCK (aaggpad);