+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:
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;
}
} 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);
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:{