diff options
author | Karel Zak | 2014-10-07 15:33:18 +0200 |
---|---|---|
committer | Karel Zak | 2014-10-07 15:33:18 +0200 |
commit | d79634cfa801d778afe6d717f289976fd1f667ab (patch) | |
tree | 83ec3d9cda3e0f9effaf3a7e12d9274065d75e0d /libfdisk/src/script.c | |
parent | libfdisk: (dos) fix booable flag usage (diff) | |
download | kernel-qcow2-util-linux-d79634cfa801d778afe6d717f289976fd1f667ab.tar.gz kernel-qcow2-util-linux-d79634cfa801d778afe6d717f289976fd1f667ab.tar.xz kernel-qcow2-util-linux-d79634cfa801d778afe6d717f289976fd1f667ab.zip |
libfdisk: fix script parser
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'libfdisk/src/script.c')
-rw-r--r-- | libfdisk/src/script.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/libfdisk/src/script.c b/libfdisk/src/script.c index c595f7cb8..e01d8f8f0 100644 --- a/libfdisk/src/script.c +++ b/libfdisk/src/script.c @@ -626,7 +626,12 @@ static int parse_script_line(struct fdisk_script *dp, char *s) } } else if (!strncasecmp(p, "bootable", 8)) { + char *x; + p += 8; + x = next_separator(p); + if (x) + p = x + 1; pa->boot = 1; } else if (!strncasecmp(p, "attrs=", 6)) { @@ -672,10 +677,6 @@ static int parse_script_line(struct fdisk_script *dp, char *s) rc = -EINVAL; break; } - - while (isblank(*p)) p++; - if (*p == ',' || *p == ';') - p++; } if (!rc) @@ -757,6 +758,7 @@ static int parse_commas_line(struct fdisk_script *dp, char *s) while (rc == 0 && p && *p) { uint64_t num; + char *begin; while (isblank(*p)) p++; if (!*p) @@ -764,6 +766,7 @@ static int parse_commas_line(struct fdisk_script *dp, char *s) item++; DBG(SCRIPT, ul_debugobj(dp, " parsing item %d ('%s')", item, p)); + begin = p; switch (item) { case ITEM_START: @@ -829,8 +832,7 @@ static int parse_commas_line(struct fdisk_script *dp, char *s) break; } - while (isblank(*p)) p++; - if (*p == ',' || *p == ';') + if (begin == p) p++; } |