gstsegment: Clipping should detect start=stop<segment_start as outside the segment
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Tue, 11 Aug 2009 10:59:13 +0000 (12:59 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Tue, 11 Aug 2009 10:59:13 +0000 (12:59 +0200)
Before it returned that [start,stop] is inside the segment and that the
difference between segment_start and start needs to be clipped. If the
clipping is done on a buffer (like in baseaudiosink) this will result
in the data pointer being at a invalid memory position.

Fixes bug #589849.

gst/gstsegment.c

index fe05f65..25d92a7 100644 (file)
@@ -738,7 +738,7 @@ gst_segment_clip (GstSegment * segment, GstFormat format, gint64 start,
 
   /* if a stop position is given and is before the segment start,
    * we're outside of the segment */
-  if (G_UNLIKELY (stop != -1 && stop != start && stop <= segment->start))
+  if (G_UNLIKELY (stop != -1 && stop <= segment->start))
     return FALSE;
 
   if (clip_start) {