sg engine: do type check only when sd has been setup
[fio.git] / parse.c
diff --git a/parse.c b/parse.c
index 57865b112e7a9118a9a4e6fc3dd0a60a0d66a9a8..ace34a697d20af4ffcff9fd013898927f3dd550c 100644 (file)
--- a/parse.c
+++ b/parse.c
@@ -142,6 +142,8 @@ void strip_blank_front(char **p)
 
        while (isspace(*s))
                s++;
+
+       *p = s;
 }
 
 void strip_blank_end(char *p)
@@ -450,9 +452,9 @@ int parse_option(const char *opt, struct fio_option *options, void *data)
 {
        struct fio_option *o;
        char *pre, *post;
-       char tmp[64];
+       char *tmp;
 
-       strncpy(tmp, opt, sizeof(tmp) - 1);
+       tmp = strdup(opt);
 
        pre = strchr(tmp, '=');
        if (pre) {
@@ -468,13 +470,17 @@ int parse_option(const char *opt, struct fio_option *options, void *data)
 
        if (!o) {
                fprintf(stderr, "Bad option %s\n", tmp);
+               free(tmp);
                return 1;
        }
 
-       if (!handle_option(o, post, data))
+       if (!handle_option(o, post, data)) {
+               free(tmp);
                return 0;
+       }
 
        fprintf(stderr, "fio: failed parsing %s\n", opt);
+       free(tmp);
        return 1;
 }