audio: don't deref NULL
authorStefan Sauer <ensonic@users.sf.net>
Fri, 14 Oct 2016 12:23:38 +0000 (14:23 +0200)
committerStefan Sauer <ensonic@users.sf.net>
Thu, 20 Oct 2016 13:42:50 +0000 (15:42 +0200)
gst_buffer_copy_region() can return NULL when the buffer meta-data is invalid.

See https://bugzilla.gnome.org/show_bug.cgi?id=772200

gst-libs/gst/audio/audio.c

index 5e3e8a6..c723d20 100644 (file)
@@ -224,14 +224,18 @@ gst_audio_buffer_clip (GstBuffer * buffer, const GstSegment * segment,
     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;
 }