diff --git a/packages/pros/src/devices/screen.rs b/packages/pros/src/devices/screen.rs index 34413e7e..776b2837 100644 --- a/packages/pros/src/devices/screen.rs +++ b/packages/pros/src/devices/screen.rs @@ -459,7 +459,8 @@ impl Screen { .into_iter() .map(|i| i.into_rgb().into()) .collect::>(); - let expected_size = ((x1 - x0) * (y1 - y0)) as usize; + // Convert the coordinates to u32 to avoid overflows when multiplying. + let expected_size = ((x1 - x0) as u32 * (y1 - y0) as u32) as usize; if raw_buf.len() != expected_size { return Err(ScreenError::CopyBufferWrongSize { buffer_size: raw_buf.len(),