Before: $ cksum --length -1 -a sha2 /dev/null cksum: invalid length: ‘-1’: Value too large for defined data type
After: $ cksum --length -1 -a sha2 /dev/null cksum: invalid length: ‘-1’ cksum: digest length for ‘SHA2’ must be 224, 256, 384, or 512 * src/cksum.c: Avoid EOVERFLOW for negative numbers (similarly to commit v9.5-71-gf2c84fe63). Link: https://github.com/coreutils/coreutils/issues/386 --- src/cksum.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/cksum.c b/src/cksum.c index 186ba3185..e0338ead4 100644 --- a/src/cksum.c +++ b/src/cksum.c @@ -1623,9 +1623,10 @@ main (int argc, char **argv) #endif #if HASH_ALGO_BLAKE2 || HASH_ALGO_CKSUM case 'l': - digest_length = xnumtoimax (optarg, 10, 0, IDX_MAX, "", + /* Suppress range errors, but clamp to values that error later. */ + digest_length = xnumtoimax (optarg, 10, -1, IDX_MAX, "", _("invalid length"), 0, - XTOINT_MAX_QUIET); + XTOINT_MIN_QUIET | XTOINT_MAX_QUIET); digest_length_str = optarg; break; #endif -- 2.55.0
