From a84b886a7d588e5eb54b4ca5a9c5538b9555556f Mon Sep 17 00:00:00 2001 From: Nicolas Dufresne Date: Wed, 21 Feb 2018 22:01:36 -0500 Subject: [PATCH] baseparse: Avoid overflow in update_interval calculation https://bugzilla.gnome.org/show_bug.cgi?id=793284 --- libs/gst/base/gstbaseparse.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libs/gst/base/gstbaseparse.c b/libs/gst/base/gstbaseparse.c index 5c44454..7ad1212 100644 --- a/libs/gst/base/gstbaseparse.c +++ b/libs/gst/base/gstbaseparse.c @@ -3860,7 +3860,11 @@ gst_base_parse_set_frame_rate (GstBaseParse * parse, guint fps_num, gst_util_uint64_scale (GST_SECOND, fps_den * lead_out, fps_num); /* aim for about 1.5s to estimate duration */ if (parse->priv->update_interval < 0) { - parse->priv->update_interval = fps_num * 3 / (fps_den * 2); + guint64 interval = gst_util_uint64_scale (fps_num, 3, + G_GUINT64_CONSTANT (2) * fps_den); + + parse->priv->update_interval = MIN (interval, G_MAXINT); + GST_LOG_OBJECT (parse, "estimated update interval to %d frames", parse->priv->update_interval); } -- 2.7.4