diff --git a/src/uu/sum/src/sum.rs b/src/uu/sum/src/sum.rs index 0ea415b13..e9b5a8e07 100644 --- a/src/uu/sum/src/sum.rs +++ b/src/uu/sum/src/sum.rs @@ -34,7 +34,7 @@ fn bsd_sum(mut reader: Box) -> (usize, u16) { Ok(n) if n != 0 => { bytes_read += n; for &byte in buf[..n].iter() { - checksum = (checksum >> 1) + ((checksum & 1) << 15); + checksum = checksum.rotate_right(1); checksum = checksum.wrapping_add(u16::from(byte)); } }