[PATCH] Time and seek optimizations
[fio.git] / parse.c
diff --git a/parse.c b/parse.c
index 7a37868ac65df28bfbf7e124c0ff71892a90d32f..8cd427a9f3ce2b6cf7547ce4822d8da614e7b82e 100644 (file)
--- a/parse.c
+++ b/parse.c
@@ -154,6 +154,11 @@ static int __handle_option(struct fio_option *o, const char *ptr, void *data,
        char **cp;
        int ret = 0, is_time = 0;
 
+       if (!ptr && o->type != FIO_OPT_STR_SET) {
+               fprintf(stderr, "Option %s requires an argument\n", o->name);
+               return 1;
+       }
+
        switch (o->type) {
        case FIO_OPT_STR: {
                fio_opt_str_fn *fn = o->cb;
@@ -280,7 +285,7 @@ static int __handle_option(struct fio_option *o, const char *ptr, void *data,
 
 static int handle_option(struct fio_option *o, const char *ptr, void *data)
 {
-       const char *ptr2;
+       const char *ptr2 = NULL;
        int r1, r2;
 
        /*
@@ -288,7 +293,8 @@ static int handle_option(struct fio_option *o, const char *ptr, void *data)
         * Do this before parsing the first round, to check if we should
         * copy set 1 options to set 2.
         */
-       ptr2 = strchr(ptr, ',');
+       if (ptr)
+               ptr2 = strchr(ptr, ',');
 
        /*
         * Don't return early if parsing the first option fails - if