diff --git a/commands/partition.c b/commands/partition.c index 399cb62..b914d51 100755 --- a/commands/partition.c +++ b/commands/partition.c @@ -133,23 +133,23 @@ partstr = end; if (*partstr == '(') { + const char *bclose; + partstr++; - end = strchr(partstr, ')'); - if (!end) { + bclose = strchr(partstr, ')'); + if (!bclose) { printf("could not find matching ')'\n"); return -EINVAL; } - if (end - partstr >= MAX_DRIVER_NAME) { + if (bclose - partstr >= MAX_DRIVER_NAME) { printf("device name too long\n"); return -EINVAL; } - memcpy(part->name, partstr, end - partstr); - end++; + memcpy(part->name, partstr, bclose - partstr); + partstr = bclose + 1; } - partstr = end; - if (*partstr == 'r' && *(partstr + 1) == 'o') { part->flags |= PARTITION_READONLY; end = (char *)(partstr + 2);