diff options
author | Corey Hickey <bugfood-c@fatooh.org> | 2022-01-23 18:33:22 -0800 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2023-02-01 11:37:32 -0500 |
commit | 8c48a46ebd63d213ab8fb55564f7a1ba5782efbe (patch) | |
tree | c55ab143a041e3f99684335eac2725bf2035b596 | |
parent | 513e559bfccc1a909900a47841a4367bdfff1470 (diff) | |
download | e2fsprogs-8c48a46ebd63d213ab8fb55564f7a1ba5782efbe.tar.gz |
badblocks: separate and improve error messages for blocks_at_once
Since the conditional checks the product of block_size and
blocks_at_once, reporting that the problem is solely with
blocks_at_once is misleading.
Also change the error to use the name of the parameter listed in the
manual rather than the variable name.
Since blocks_at_once is unsigned, change the test to == rather than <=.
Before:
$ misc/badblocks -w -b 16777216 -c 524288 -e 1 -s -v /tmp/testfile.bin
misc/badblocks: Invalid blocks_at_once: 524288
After:
$ misc/badblocks -w -b 16777216 -c 524288 -e 1 -s -v /tmp/testfile.bin
misc/badblocks: For block size 16777216, blocks_at_once too large: 524288
$ misc/badblocks -w -b 16777216 -c 0 -e 1 -s -v /tmp/testfile.bin
misc/badblocks: Invalid number of blocks: 0
Signed-off-by: Corey Hickey <bugfood-c@fatooh.org>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-rw-r--r-- | misc/badblocks.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/misc/badblocks.c b/misc/badblocks.c index e640eadd..0e74be80 100644 --- a/misc/badblocks.c +++ b/misc/badblocks.c @@ -1211,11 +1211,14 @@ int main (int argc, char ** argv) block_size); exit(1); } - if ((blocks_at_once <= 0) || - (((unsigned long long) block_size * blocks_at_once) > 0xFFFFFFFF)) { - com_err(program_name, 0, _("Invalid blocks_at_once: %d\n"), + if (blocks_at_once == 0) { + com_err(program_name, 0, _("Invalid number of blocks: %d\n"), blocks_at_once); exit(1); + } else if (((unsigned long long) block_size * blocks_at_once) > 0xFFFFFFFF) { + com_err(program_name, 0, _("For block size %d, number of blocks too large: %d\n"), + block_size, blocks_at_once); + exit(1); } if (optind > argc - 1) |