summaryrefslogtreecommitdiff
path: root/gst
diff options
context:
space:
mode:
authorVincent Penquerc'h <vincent.penquerch@collabora.co.uk>2014-04-17 09:26:20 +0100
committerVincent Penquerc'h <vincent.penquerch@collabora.co.uk>2014-04-21 09:24:00 +0100
commit9815faea9b8aaedc8b8d87383c2957064271e87a (patch)
treee9a3cdb926f1ccc399f69863dca5c74798821b41 /gst
parent110c21a13676f17b426fbbe37cdc2ee215520c40 (diff)
downloadgstreamer-plugins-bad-9815faea9b8aaedc8b8d87383c2957064271e87a.tar.gz
rawparse: catch errors in caps manipulation
Coverity 1139622
Diffstat (limited to 'gst')
-rw-r--r--gst/rawparse/gstaudioparse.c11
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);