gst/base/gstbasesrc.c (gst_basesrc_get_range): Check if the offset is greater than...
authorAndy Wingo <wingo@pobox.com>
Thu, 23 Jun 2005 15:26:09 +0000 (15:26 +0000)
committerAndy Wingo <wingo@pobox.com>
Thu, 23 Jun 2005 15:26:09 +0000 (15:26 +0000)
Original commit message from CVS:
2005-06-23  Andy Wingo  <wingo@pobox.com>

* gst/base/gstbasesrc.c (gst_basesrc_get_range): Check if the
offset is greater than the file's size.

ChangeLog
gst/base/gstbasesrc.c
libs/gst/base/gstbasesrc.c

index 84bd6df..926c985 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2005-06-23  Andy Wingo  <wingo@pobox.com>
 
+       * gst/base/gstbasesrc.c (gst_basesrc_get_range): Check if the
+       offset is greater than the file's size.
+
        * gst/gstobject.h (GST_CLASS_LOCK, GST_CLASS_TRYLOCK) 
        (GST_CLASS_UNLOCK, GST_CLASS_GET_LOCK, GstObjectClass)
        * gst/gstobject.c (gst_object_class_init): Make the class lock
index fdf7f2e..70b58bb 100644 (file)
@@ -502,6 +502,9 @@ gst_basesrc_get_range (GstPad * pad, guint64 offset, guint length,
 
   /* check size */
   if (src->size != -1) {
+    if (offset > src->size)
+      goto unexpected_length;
+
     if (offset + length > src->size) {
       if (bclass->get_size)
         bclass->get_size (src, &src->size);
index fdf7f2e..70b58bb 100644 (file)
@@ -502,6 +502,9 @@ gst_basesrc_get_range (GstPad * pad, guint64 offset, guint length,
 
   /* check size */
   if (src->size != -1) {
+    if (offset > src->size)
+      goto unexpected_length;
+
     if (offset + length > src->size) {
       if (bclass->get_size)
         bclass->get_size (src, &src->size);