From: nick_m Date: Sun, 10 Jul 2016 17:53:36 +0000 (+1000) Subject: Fix potential infinite loop in TempoCurve::set_position() X-Git-Tag: 5.0-pre1~193 X-Git-Url: https://main.carlh.net/gitweb/?a=commitdiff_plain;h=b8a7ee001b3e1e19012e8713d2e1424e4c8820a6;hp=5156b8aeb5f3851628d1d4bdbe953731f67b5c44;p=ardour.git Fix potential infinite loop in TempoCurve::set_position() - it was previously possible for frame_step to be zero for tempo sections with a short duration, resulting in endlessly adding 0 to current_frame. --- diff --git a/gtk2_ardour/tempo_curve.cc b/gtk2_ardour/tempo_curve.cc index bc83bfaa42..4771205263 100644 --- a/gtk2_ardour/tempo_curve.cc +++ b/gtk2_ardour/tempo_curve.cc @@ -128,7 +128,7 @@ TempoCurve::set_position (framepos_t frame, framepos_t end_frame) points->push_back (ArdourCanvas::Duple (ArdourCanvas::COORD_MAX - 5.0, y_pos)); } else { - const framepos_t frame_step = (end_frame - frame) / 5; + const framepos_t frame_step = max ((end_frame - frame) / 5, (framepos_t) 1); framepos_t current_frame = frame; while (current_frame < (end_frame - frame_step)) {