From: WanBingjiang Date: Wed, 29 Apr 2026 11:00:25 +0000 (+0800) Subject: bits: improve error message for out-of-range cpulist_parse() X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6ccfb215642ff758492a3f165b5589488e199b04;p=thirdparty%2Futil-linux.git bits: improve error message for out-of-range cpulist_parse() Distinguish between invalid list syntax and CPU numbers that exceed the cpuset size, giving the user a clearer diagnostic. Signed-off-by: WanBingjiang --- diff --git a/tests/expected/bits/bits-truncate b/tests/expected/bits/bits-truncate index d00491fd7..e69de29bb 100644 --- a/tests/expected/bits/bits-truncate +++ b/tests/expected/bits/bits-truncate @@ -1 +0,0 @@ -1 diff --git a/tests/expected/bits/bits-truncate.err b/tests/expected/bits/bits-truncate.err index e69de29bb..5274a7d14 100644 --- a/tests/expected/bits/bits-truncate.err +++ b/tests/expected/bits/bits-truncate.err @@ -0,0 +1 @@ +bits: error: bit list wider than cpuset size: 1,10000 diff --git a/tests/expected/bits/bits-truncate.exit_code b/tests/expected/bits/bits-truncate.exit_code index e69de29bb..56a6051ca 100644 --- a/tests/expected/bits/bits-truncate.exit_code +++ b/tests/expected/bits/bits-truncate.exit_code @@ -0,0 +1 @@ +1 \ No newline at end of file diff --git a/text-utils/bits.c b/text-utils/bits.c index 7f2bac5f1..532de5061 100644 --- a/text-utils/bits.c +++ b/text-utils/bits.c @@ -63,8 +63,11 @@ static void parse_mask_or_list(const char *cmdline_arg, if (cpumask_parse(arg, bits, size) < 0) errx(EXIT_FAILURE, _("error: invalid bit mask: %s"), cmdline_arg); } else { - if (cpulist_parse(arg, bits, size, 1)) + int rc = cpulist_parse(arg, bits, size, 1); + if (rc == 1) errx(EXIT_FAILURE, _("error: invalid bit list: %s"), cmdline_arg); + else if (rc == 2) + errx(EXIT_FAILURE, _("error: bit list wider than cpuset size: %s"), cmdline_arg); } /* truncate all bits beyond the requested mask size */