diff options
author | Stefan Sauer <ensonic@users.sf.net> | 2016-10-14 14:23:38 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2016-10-25 16:02:43 +0300 |
commit | 17fffbee4076b00f6f1acadddacb0dfcc8067ec5 (patch) | |
tree | 71c8c91a3a13868118937eb69bff0895437be3a1 | |
parent | a52df3843de804547fda7f2b244365f512fb3e72 (diff) | |
download | gstreamer-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.c | 18 |
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; } |