diff options
-rw-r--r-- | console-tools/deallocvt.c | 37 | ||||
-rw-r--r-- | miscutils/strings.c | 2 |
2 files changed, 21 insertions, 18 deletions
diff --git a/console-tools/deallocvt.c b/console-tools/deallocvt.c index a4ba851c8..f641be8d7 100644 --- a/console-tools/deallocvt.c +++ b/console-tools/deallocvt.c @@ -15,29 +15,32 @@ static const int VT_DISALLOCATE = 0x5608; /* free memory associated to vt */ int deallocvt_main(int argc, char *argv[]) { - int fd, num, i; + int fd, num=0; - //if ((argc > 2) || ((argv == 2) && (**(argv + 1) == '-'))) if (argc > 2) bb_show_usage(); fd = get_console_fd(); + + /* num=0 deallocate all unused consoles */ + if (argc == 1) + goto disallocate_all; - if (argc == 1) { - /* deallocate all unused consoles */ - if (ioctl(fd, VT_DISALLOCATE, 0)) - bb_perror_msg_and_die("VT_DISALLOCATE"); - } else { - for (i = 1; i < argc; i++) { - num = atoi(argv[i]); - if (num == 0) - bb_error_msg("0: illegal VT number"); - else if (num == 1) - bb_error_msg("VT 1 cannot be deallocated"); - else if (ioctl(fd, VT_DISALLOCATE, num)) + num=bb_xgetlarg(argv[1], 10, 0, INT_MAX); + + switch(num) + { + case 0: + bb_error_msg("0: illegal VT number"); + break; + case 1: + bb_error_msg("VT 1 cannot be deallocated"); + break; + default: +disallocate_all: + if (ioctl(fd, VT_DISALLOCATE, num)) bb_perror_msg_and_die("VT_DISALLOCATE"); - } + return EXIT_SUCCESS; } - - return EXIT_SUCCESS; + return EXIT_FAILURE; } diff --git a/miscutils/strings.c b/miscutils/strings.c index 2413c3f2d..c0d4a3f74 100644 --- a/miscutils/strings.c +++ b/miscutils/strings.c @@ -54,7 +54,7 @@ int strings_main(int argc, char **argv) opt+=2; break; case 'n': - n = bb_xgetlarg(optarg, 10, 1, LONG_MAX); + n = bb_xgetlarg(optarg, 10, 1, INT_MAX); break; default: bb_show_usage(); |