diff options
Diffstat (limited to 'mkfs')
| -rw-r--r-- | mkfs/options.c | 28 | 
1 files changed, 7 insertions, 21 deletions
diff --git a/mkfs/options.c b/mkfs/options.c index 8d724a8..78c6a88 100644 --- a/mkfs/options.c +++ b/mkfs/options.c @@ -110,23 +110,6 @@ static const char *help_string =  "    file /bin/bash 0755 0 0"  "\n\n"; -static long read_number(const char *name, const char *str, long min, long max) -{ -	long result = strtol(str, NULL, 0); - -	if (result < min) { -		fprintf(stderr, "%s: number too small\n", name); -		exit(EXIT_FAILURE); -	} - -	if (result > max) { -		fprintf(stderr, "%s: number too large\n", name); -		exit(EXIT_FAILURE); -	} - -	return result; -} -  void process_command_line(options_t *opt, int argc, char **argv)  {  	bool have_compressor; @@ -165,12 +148,15 @@ void process_command_line(options_t *opt, int argc, char **argv)  			}  			break;  		case 'b': -			opt->blksz = read_number("Block size", optarg, -						 4096, (1 << 20) - 1); +			opt->blksz = strtol(optarg, NULL, 0);  			break;  		case 'B': -			opt->devblksz = read_number("Device block size", optarg, -						    4096, 0xFFFFFFFF); +			opt->devblksz = strtol(optarg, NULL, 0); +			if (opt->devblksz < 1024) { +				fputs("Device block size must be at " +				      "least 1024\n", stderr); +				exit(EXIT_FAILURE); +			}  			break;  		case 'd':  			opt->fs_defaults = optarg;  | 
