[PATCH 06/10] nand command: check for <dev> directly after option parsing
Sascha Hauer
s.hauer at pengutronix.de
Mon Mar 4 05:13:50 EST 2013
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 <s.hauer at pengutronix.de>
---
commands/nand.c | 31 ++++++++++++++++---------------
1 file changed, 16 insertions(+), 15 deletions(-)
diff --git a/commands/nand.c b/commands/nand.c
index 79f6735..39fb64e 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;
--
1.7.10.4
More information about the barebox
mailing list