From 8b51e9dc60fcba2bf4a1c6cdaaffb562d2e7e6d3 Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Sat, 5 Apr 2014 11:37:53 +0200 Subject: [PATCH] gstvalue: Prevent division or modulo by zero The step can end up being zero if the underlying value isn't a valid range GValue. In those cases, return FALSE. We don't use g_return*_if_fail since it will already have been triggered by the above-mentionned _get_step() functions. CID #1037132 --- gst/gstvalue.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gst/gstvalue.c b/gst/gstvalue.c index f45597fa89..6643080ee1 100644 --- a/gst/gstvalue.c +++ b/gst/gstvalue.c @@ -4445,6 +4445,8 @@ gst_value_list_equals_range (const GValue * list, const GValue * value) const gint64 rmax = gst_value_get_int64_range_max (value); const gint64 rstep = gst_value_get_int64_range_step (value); GST_DEBUG ("List/range of int64s"); + if (rstep == 0) + return FALSE; if (list_size != rmax / rstep - rmin / rstep + 1) return FALSE; for (n = 0; n < list_size; ++n) {