]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - glsdk/gst-plugins-ugly0-10.git/commitdiff
ext/dvdread/dvdreadsrc.c: Add some gint64 casts to prevent 32 bit integer overflows.
authorTal Shalif <tshalif@nargila.org>
Mon, 18 Feb 2008 05:16:44 +0000 (05:16 +0000)
committerSebastian Dröge <slomo@circular-chaos.org>
Mon, 18 Feb 2008 05:16:44 +0000 (05:16 +0000)
Original commit message from CVS:
Patch by: Tal Shalif <tshalif at nargila dot org>
* ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_create),
(gst_dvd_read_src_do_seek), (gst_dvd_read_src_do_position_query):
Add some gint64 casts to prevent 32 bit integer overflows.
Fixes bug #516989.

ChangeLog
ext/dvdread/dvdreadsrc.c

index f670dc95ab34edfb50ef7b2a74b3ff96ef9d4724..93b7b23fc4cedb258fe86e77fc14bde8f0f3a9db 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2008-02-18  Sebastian Dröge  <slomo@circular-chaos.org>
+
+       Patch by: Tal Shalif <tshalif at nargila dot org>
+
+       * ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_create),
+       (gst_dvd_read_src_do_seek), (gst_dvd_read_src_do_position_query):
+       Add some gint64 casts to prevent 32 bit integer overflows.
+       Fixes bug #516989.
+
 2008-02-17  Jan Schmidt  <jan.schmidt@sun.com>
 
        * gst/mpegaudioparse/gstmpegaudioparse.c:
index 0eba950af87276ffaa76b113986c38a622abc90f..06b1b85d25b0e0ac522b801e06fdd4213b65ee1d 100644 (file)
@@ -887,7 +887,7 @@ gst_dvd_read_src_create (GstPushSrc * pushsrc, GstBuffer ** p_buf)
   if (src->need_newsegment) {
     gst_pad_push_event (srcpad,
         gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_BYTES,
-            src->cur_pack * DVD_VIDEO_LB_LEN, -1, 0));
+            (gint64) src->cur_pack * DVD_VIDEO_LB_LEN, -1, 0));
     src->need_newsegment = FALSE;
   }
 
@@ -1187,7 +1187,7 @@ gst_dvd_read_src_do_seek (GstBaseSrc * basesrc, GstSegment * s)
     } else {
       /* byte format */
       src->cur_pack = s->last_stop / DVD_VIDEO_LB_LEN;
-      if ((src->cur_pack * DVD_VIDEO_LB_LEN) != s->last_stop) {
+      if (((gint64) src->cur_pack * DVD_VIDEO_LB_LEN) != s->last_stop) {
         GST_LOG_OBJECT (src, "rounded down offset %" G_GINT64_FORMAT " => %"
             G_GINT64_FORMAT, s->last_stop,
             (gint64) src->cur_pack * DVD_VIDEO_LB_LEN);
@@ -1345,7 +1345,7 @@ gst_dvd_read_src_do_position_query (GstDvdReadSrc * src, GstQuery * query)
 
   switch (format) {
     case GST_FORMAT_BYTES:{
-      val = src->cur_pack * DVD_VIDEO_LB_LEN;
+      val = (gint64) src->cur_pack * DVD_VIDEO_LB_LEN;
       break;
     }
     default:{