From 4a864e514bdb7d767f6efc72740db9f5592fdb4b Mon Sep 17 00:00:00 2001 From: oech3 <79379754+oech3@users.noreply.github.com> Date: Wed, 17 Jun 2026 02:42:57 +0900 Subject: [PATCH] cksum: exit 1 when OOM --- src/uucore/src/lib/features/sum.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/uucore/src/lib/features/sum.rs b/src/uucore/src/lib/features/sum.rs index 85a3d9f58c0..ff96e375168 100644 --- a/src/uucore/src/lib/features/sum.rs +++ b/src/uucore/src/lib/features/sum.rs @@ -443,7 +443,14 @@ macro_rules! impl_digest_shake { } fn result(&mut self) -> DigestOutput { - let mut bytes = vec![0; self.output_bits().div_ceil(8)]; + let mut bytes = Vec::new(); + // catch OOM + let len = self.output_bits().div_ceil(8); + if let Err(e) = bytes.try_reserve(len) { + let _ = writeln!(std::io::stderr(), "{e}"); + std::process::exit(1); //todo: remove this exit. This rejects embedding uu_app to consumers. + } + bytes.resize(len, 0); self.hash_finalize(&mut bytes); DigestOutput::Vec(bytes) }