From 68bd6e930953d2a289adf3b141d3a33b93a1e580 Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Mon, 25 Feb 2013 12:54:15 +0100 Subject: nand command: check for directly after option parsing Allo subcommands need at least one nonopt arg, so check for it right after parsing the options and drop the check in the MARKBAD command. Signed-off-by: Sascha Hauer --- commands/nand.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) (limited to 'commands/nand.c') diff --git a/commands/nand.c b/commands/nand.c index 79f6735a72..39fb64ef1c 100644 --- a/commands/nand.c +++ b/commands/nand.c @@ -58,6 +58,9 @@ static int do_nand(int argc, char *argv[]) } } + if (optind >= argc) + return COMMAND_ERROR_USAGE; + if (command == NAND_ADD) { while (optind < argc) { if (dev_add_bb_dev(basename(argv[optind]), NULL)) @@ -75,25 +78,23 @@ static int do_nand(int argc, char *argv[]) } if (command == NAND_MARKBAD) { - if (optind < argc) { - int ret = 0, fd; + int ret = 0, fd; - printf("marking block at 0x%08llx on %s as bad\n", - badblock, argv[optind]); + printf("marking block at 0x%08llx on %s as bad\n", + badblock, argv[optind]); - fd = open(argv[optind], O_RDWR); - if (fd < 0) { - perror("open"); - return 1; - } + fd = open(argv[optind], O_RDWR); + if (fd < 0) { + perror("open"); + return 1; + } - ret = ioctl(fd, MEMSETBADBLOCK, &badblock); - if (ret) - perror("ioctl"); + ret = ioctl(fd, MEMSETBADBLOCK, &badblock); + if (ret) + perror("ioctl"); - close(fd); - return ret; - } + close(fd); + return ret; } return 0; -- cgit v1.2.3