From: Sebastian Dröge Date: Fri, 12 Sep 2014 12:22:19 +0000 (+0300) Subject: pad: Make sure the buffer to get/pull_range() has at least the requested size X-Git-Tag: 1.6.1~767 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=126c511e6273c3dea7494d81ed044414a3e355ba;p=platform%2Fupstream%2Fgstreamer.git pad: Make sure the buffer to get/pull_range() has at least the requested size https://bugzilla.gnome.org/show_bug.cgi?id=735861 --- diff --git a/gst/gstpad.c b/gst/gstpad.c index adb44ff..e835e29 100644 --- a/gst/gstpad.c +++ b/gst/gstpad.c @@ -4419,8 +4419,8 @@ gst_pad_get_range (GstPad * pad, guint64 offset, guint size, g_return_val_if_fail (GST_IS_PAD (pad), GST_FLOW_ERROR); g_return_val_if_fail (GST_PAD_IS_SRC (pad), GST_FLOW_ERROR); g_return_val_if_fail (buffer != NULL, GST_FLOW_ERROR); - g_return_val_if_fail (*buffer == NULL - || GST_IS_BUFFER (*buffer), GST_FLOW_ERROR); + g_return_val_if_fail (*buffer == NULL || (GST_IS_BUFFER (*buffer) + && gst_buffer_get_size (*buffer) >= size), GST_FLOW_ERROR); return gst_pad_get_range_unchecked (pad, offset, size, buffer); } @@ -4474,8 +4474,8 @@ gst_pad_pull_range (GstPad * pad, guint64 offset, guint size, g_return_val_if_fail (GST_IS_PAD (pad), GST_FLOW_ERROR); g_return_val_if_fail (GST_PAD_IS_SINK (pad), GST_FLOW_ERROR); g_return_val_if_fail (buffer != NULL, GST_FLOW_ERROR); - g_return_val_if_fail (*buffer == NULL - || GST_IS_BUFFER (*buffer), GST_FLOW_ERROR); + g_return_val_if_fail (*buffer == NULL || (GST_IS_BUFFER (*buffer) + && gst_buffer_get_size (*buffer) >= size), GST_FLOW_ERROR); GST_OBJECT_LOCK (pad); if (G_UNLIKELY (GST_PAD_IS_FLUSHING (pad)))