From 09ab1d8fb21cd521f94bfdd30db7bb7b4bb2413c Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Thu, 23 Jun 2005 15:26:09 +0000 Subject: [PATCH] gst/base/gstbasesrc.c (gst_basesrc_get_range): Check if the offset is greater than the file's size. Original commit message from CVS: 2005-06-23 Andy Wingo * gst/base/gstbasesrc.c (gst_basesrc_get_range): Check if the offset is greater than the file's size. --- ChangeLog | 3 +++ gst/base/gstbasesrc.c | 3 +++ libs/gst/base/gstbasesrc.c | 3 +++ 3 files changed, 9 insertions(+) diff --git a/ChangeLog b/ChangeLog index 84bd6df..926c985 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2005-06-23 Andy Wingo + * 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 diff --git a/gst/base/gstbasesrc.c b/gst/base/gstbasesrc.c index fdf7f2e..70b58bb 100644 --- a/gst/base/gstbasesrc.c +++ b/gst/base/gstbasesrc.c @@ -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); diff --git a/libs/gst/base/gstbasesrc.c b/libs/gst/base/gstbasesrc.c index fdf7f2e..70b58bb 100644 --- a/libs/gst/base/gstbasesrc.c +++ b/libs/gst/base/gstbasesrc.c @@ -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); -- 2.7.4