From: Edward Hervey Date: Fri, 11 Apr 2014 11:45:21 +0000 (+0200) Subject: gstbuffer: Fix range iteration X-Git-Tag: 1.3.1~45 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c7295cf4b9d0656246a26e20f38dc18beda599e7;p=platform%2Fupstream%2Fgstreamer.git gstbuffer: Fix range iteration We want to iterate over items idx to idx + length We use the len variable as the corrected number of memory to iterate and then properly go over all items. Fixes the issue where specifying any idx different from 0 had no effect Spotted by clang static analyzer --- diff --git a/gst/gstbuffer.c b/gst/gstbuffer.c index 019261e..1cea700 100644 --- a/gst/gstbuffer.c +++ b/gst/gstbuffer.c @@ -1204,10 +1204,12 @@ gst_buffer_is_memory_range_writable (GstBuffer * buffer, guint idx, gint length) FALSE); if (length == -1) - length = len - idx; + len -= idx; + else + len = length; for (i = 0; i < len; i++) { - if (!gst_memory_is_writable (GST_BUFFER_MEM_PTR (buffer, i))) + if (!gst_memory_is_writable (GST_BUFFER_MEM_PTR (buffer, i + idx))) return FALSE; } return TRUE;