bloom: up hashes to 5 by default
[fio.git] / parse.c
diff --git a/parse.c b/parse.c
index 079f19e3d32754f53ebfb3d9ca0ff5a8c707fc15..40cd46587d3e03477451fd3ef2aaa8b832c6ef1a 100644 (file)
--- a/parse.c
+++ b/parse.c
@@ -380,7 +380,7 @@ static int check_int(const char *p, int *val)
        return 1;
 }
 
-static int opt_len(const char *str)
+static size_t opt_len(const char *str)
 {
        char *postfix;
 
@@ -608,6 +608,9 @@ static int __handle_option(struct fio_option *o, const char *ptr, void *data,
        case FIO_OPT_STR_STORE: {
                fio_opt_str_fn *fn = o->cb;
 
+               if (!strlen(ptr))
+                       return 1;
+
                if (o->off1) {
                        cp = td_var(data, o, o->off1);
                        *cp = strdup(ptr);
@@ -621,7 +624,7 @@ static int __handle_option(struct fio_option *o, const char *ptr, void *data,
                        ret = 1;
                        for (i = 0; i < PARSE_MAX_VP; i++) {
                                vp = &posval[i];
-                               if (!vp->ival || vp->ival[0] == '\0')
+                               if (!vp->ival || vp->ival[0] == '\0' || !cp)
                                        continue;
                                all_skipped = 0;
                                if (!strncmp(vp->ival, ptr, str_match_len(vp, ptr))) {
@@ -1164,7 +1167,7 @@ void option_init(struct fio_option *o)
                o->minfp = DBL_MIN;
                o->maxfp = DBL_MAX;
        }
-       if (o->type == FIO_OPT_STR_SET && o->def) {
+       if (o->type == FIO_OPT_STR_SET && o->def && !o->no_warn_def) {
                log_err("Option %s: string set option with"
                                " default will always be true\n", o->name);
        }