From d87a3b6ca53016ed51da6ea94a1291a596a40db4 Mon Sep 17 00:00:00 2001 From: Gabriel Feceoru Date: Sat, 14 Mar 2026 16:26:22 +0100 Subject: [PATCH] Fix u16 mul overflow with big term width When running rustlings in Rover IDE, term width could have a value of 2480 which causes u16 mul overflow. --- src/term.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/term.rs b/src/term.rs index 3d149b33..b661dfa2 100644 --- a/src/term.rs +++ b/src/term.rs @@ -216,7 +216,9 @@ pub fn progress_bar<'a>( stdout.write_all(PREFIX)?; let width = term_width - WRAPPER_WIDTH; - let filled = (width * progress) / total; + // Use u32 to prevent the intermediate multiplication from overflowing u16 + let filled = (width as u32 * progress as u32) / total as u32; + let filled = filled as u16; stdout.queue(SetForegroundColor(Color::Green))?; for _ in 0..filled {