summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Sauer <ensonic@users.sf.net>2016-10-14 14:23:38 +0200
committerSebastian Dröge <sebastian@centricular.com>2016-10-25 16:02:43 +0300
commit17fffbee4076b00f6f1acadddacb0dfcc8067ec5 (patch)
tree71c8c91a3a13868118937eb69bff0895437be3a1
parenta52df3843de804547fda7f2b244365f512fb3e72 (diff)
downloadgstreamer-plugins-base-17fffbee4076b00f6f1acadddacb0dfcc8067ec5.tar.gz
audio: don't deref NULL
gst_buffer_copy_region() can return NULL when the buffer meta-data is invalid. See https://bugzilla.gnome.org/show_bug.cgi?id=772200
-rw-r--r--gst-libs/gst/audio/audio.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/gst-libs/gst/audio/audio.c b/gst-libs/gst/audio/audio.c
index 5f3556feb..7bb4529d8 100644
--- a/gst-libs/gst/audio/audio.c
+++ b/gst-libs/gst/audio/audio.c
@@ -224,14 +224,18 @@ gst_audio_buffer_clip (GstBuffer * buffer, GstSegment * segment, gint rate,
gst_buffer_unref (buffer);
GST_DEBUG ("timestamp %" GST_TIME_FORMAT, GST_TIME_ARGS (timestamp));
- GST_BUFFER_TIMESTAMP (ret) = timestamp;
+ if (ret) {
+ GST_BUFFER_TIMESTAMP (ret) = timestamp;
- if (change_duration)
- GST_BUFFER_DURATION (ret) = duration;
- if (change_offset)
- GST_BUFFER_OFFSET (ret) = offset;
- if (change_offset_end)
- GST_BUFFER_OFFSET_END (ret) = offset_end;
+ if (change_duration)
+ GST_BUFFER_DURATION (ret) = duration;
+ if (change_offset)
+ GST_BUFFER_OFFSET (ret) = offset;
+ if (change_offset_end)
+ GST_BUFFER_OFFSET_END (ret) = offset_end;
+ } else {
+ GST_ERROR ("copy_region failed");
+ }
}
return ret;
}