From d154c21a09369d08f16a9cdf71e00ccfe55c9ef7 Mon Sep 17 00:00:00 2001 From: Josh French Date: Mon, 30 Mar 2026 12:56:43 -0700 Subject: [PATCH] Fix an error in how cksum parses checksum files When cksum (or sha256sum, etc...) attempts to parse chekcusm files in the "tagged output format" and it encounters the string "((", it crashes due to an error in how it parses the checksum file. GNU coreutils, by contrast, correctly recognizes this string as a syntax error and ignores the line. --- src/uucore/src/lib/features/checksum/validate.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/uucore/src/lib/features/checksum/validate.rs b/src/uucore/src/lib/features/checksum/validate.rs index bb47ff6c920..c226c926699 100644 --- a/src/uucore/src/lib/features/checksum/validate.rs +++ b/src/uucore/src/lib/features/checksum/validate.rs @@ -281,6 +281,9 @@ impl LineFormat { // tagged format does not put a space before (filename) let par_idx = rest.iter().position(|&b| b == b'(')?; + if par_idx < 1 { + return None; + } let sub_case = if rest[par_idx - 1] == b' ' { SubCase::Posix } else {