summaryrefslogtreecommitdiff
path: root/ubi-utils/src/ubiformat.c
diff options
context:
space:
mode:
Diffstat (limited to 'ubi-utils/src/ubiformat.c')
-rw-r--r--ubi-utils/src/ubiformat.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/ubi-utils/src/ubiformat.c b/ubi-utils/src/ubiformat.c
index 098da7d..6e5cdb8 100644
--- a/ubi-utils/src/ubiformat.c
+++ b/ubi-utils/src/ubiformat.c
@@ -134,8 +134,7 @@ static int parse_opt(int argc, char * const argv[])
args.image_seq = rand();
while (1) {
- int key;
- char *endp;
+ int key, error = 0;
unsigned long int image_seq;
key = getopt_long(argc, argv, "nh?Vyqve:x:s:O:f:S:", long_options, NULL);
@@ -152,14 +151,14 @@ static int parse_opt(int argc, char * const argv[])
break;
case 'O':
- args.vid_hdr_offs = strtoul(optarg, &endp, 0);
- if (args.vid_hdr_offs <= 0 || *endp != '\0' || endp == optarg)
+ args.vid_hdr_offs = simple_strtoul(optarg, &error);
+ if (error || args.vid_hdr_offs <= 0)
return errmsg("bad VID header offset: \"%s\"", optarg);
break;
case 'e':
- args.ec = strtoull(optarg, &endp, 0);
- if (args.ec < 0 || *endp != '\0' || endp == optarg)
+ args.ec = simple_strtoull(optarg, &error);
+ if (error || args.ec < 0)
return errmsg("bad erase counter value: \"%s\"", optarg);
if (args.ec >= EC_MAX)
return errmsg("too high erase %llu, counter, max is %u", args.ec, EC_MAX);
@@ -189,14 +188,14 @@ static int parse_opt(int argc, char * const argv[])
break;
case 'x':
- args.ubi_ver = strtoul(optarg, &endp, 0);
- if (args.ubi_ver < 0 || *endp != '\0' || endp == optarg)
+ args.ubi_ver = simple_strtoul(optarg, &error);
+ if (error || args.ubi_ver < 0)
return errmsg("bad UBI version: \"%s\"", optarg);
break;
case 'Q':
- image_seq = strtoul(optarg, &endp, 0);
- if (*endp != '\0' || endp == optarg || image_seq > 0xFFFFFFFF)
+ image_seq = simple_strtoul(optarg, &error);
+ if (error || image_seq > 0xFFFFFFFF)
return errmsg("bad UBI image sequence number: \"%s\"", optarg);
args.image_seq = image_seq;
break;