baseparse: prevent arithmetic overflows in pull mode buffer cache handling
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Tue, 15 Jun 2010 13:33:37 +0000 (15:33 +0200)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Fri, 8 Apr 2011 17:07:06 +0000 (18:07 +0100)
gst/audioparsers/gstbaseparse.c

index 985589a..f37b0bb 100644 (file)
@@ -1341,8 +1341,8 @@ gst_base_parse_pull_range (GstBaseParse * parse, guint size,
   /* Caching here actually makes much less difference than one would expect.
    * We do it mainly to avoid pulling buffers of 1 byte all the time */
   if (parse->priv->cache) {
-    guint64 cache_offset = GST_BUFFER_OFFSET (parse->priv->cache);
-    guint cache_size = GST_BUFFER_SIZE (parse->priv->cache);
+    gint64 cache_offset = GST_BUFFER_OFFSET (parse->priv->cache);
+    gint cache_size = GST_BUFFER_SIZE (parse->priv->cache);
 
     if (cache_offset <= parse->priv->offset &&
         (parse->priv->offset + size) <= (cache_offset + cache_size)) {