From 7f902fa2dc787bd1212d977babf7ea9eedd328f0 Mon Sep 17 00:00:00 2001 From: Matthew Olsson Date: Fri, 7 Jun 2024 15:40:29 -0700 Subject: [PATCH] LibWeb: Prevent overrunning loop bounds in cubic bezier calculation --- Userland/Libraries/LibWeb/Animations/TimingFunction.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Userland/Libraries/LibWeb/Animations/TimingFunction.cpp b/Userland/Libraries/LibWeb/Animations/TimingFunction.cpp index 92e1b0b14dc..8b423efd824 100644 --- a/Userland/Libraries/LibWeb/Animations/TimingFunction.cpp +++ b/Userland/Libraries/LibWeb/Animations/TimingFunction.cpp @@ -95,9 +95,9 @@ double CubicBezierTimingFunction::operator()(double input_progress, bool) const if (nearby_index == m_cached_x_samples.size() || nearby_index + 1 == m_cached_x_samples.size()) { // Produce more samples until we have enough. - auto last_t = m_cached_x_samples.is_empty() ? 0 : m_cached_x_samples.last().t; - auto last_x = m_cached_x_samples.is_empty() ? 0 : m_cached_x_samples.last().x; - while (last_x <= x) { + auto last_t = m_cached_x_samples.last().t; + auto last_x = m_cached_x_samples.last().x; + while (last_x <= x && last_t < 1.0) { last_t += 1. / 60.; auto solution = solve(last_t); m_cached_x_samples.append(solution);