diff options
author | Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> | 2014-04-17 09:26:20 +0100 |
---|---|---|
committer | Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> | 2014-04-21 09:24:00 +0100 |
commit | 9815faea9b8aaedc8b8d87383c2957064271e87a (patch) | |
tree | e9a3cdb926f1ccc399f69863dca5c74798821b41 /gst/rawparse | |
parent | 110c21a13676f17b426fbbe37cdc2ee215520c40 (diff) | |
download | gstreamer-plugins-bad-9815faea9b8aaedc8b8d87383c2957064271e87a.tar.gz |
rawparse: catch errors in caps manipulation
Coverity 1139622
Diffstat (limited to 'gst/rawparse')
-rw-r--r-- | gst/rawparse/gstaudioparse.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/gst/rawparse/gstaudioparse.c b/gst/rawparse/gstaudioparse.c index 8644b56a7..04477f5c2 100644 --- a/gst/rawparse/gstaudioparse.c +++ b/gst/rawparse/gstaudioparse.c @@ -371,7 +371,16 @@ gst_audio_parse_get_caps (GstRawParse * rp) if (ap->use_sink_caps) { gint rate; GstCaps *caps = gst_pad_get_current_caps (rp->sinkpad); - gst_audio_info_from_caps (&info, caps); + if (!caps) { + GST_WARNING_OBJECT (ap, + "Sink pad has no caps, but we were asked to use its caps"); + return NULL; + } + if (!gst_audio_info_from_caps (&info, caps)) { + GST_WARNING_OBJECT (ap, "Failed to parse caps %" GST_PTR_FORMAT, caps); + gst_caps_unref (caps); + return NULL; + } ap->format = GST_AUDIO_PARSE_FORMAT_RAW; ap->raw_format = GST_AUDIO_INFO_FORMAT (&info); |