X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=init.c;h=70b56e38f21b5dab4c1789234d3ee226acabaed5;hb=b9ea0c31d25a6f3b88925398158463863d44c3c2;hp=0cc6a520b15269c177ff1fa7ab01a4fddc2ac038;hpb=bfb3ea221ed3b5ce4a0795cee778b965ee83cf9f;p=fio.git diff --git a/init.c b/init.c index 0cc6a520..70b56e38 100644 --- a/init.c +++ b/init.c @@ -749,6 +749,10 @@ int ioengine_load(struct thread_data *td) */ if (td->io_ops) return 0; + if (!td->o.ioengine) { + log_err("fio: internal fault, no IO engine specified\n"); + return 1; + } engine = get_engine_name(td->o.ioengine); td->io_ops = load_ioengine(td, engine); @@ -1725,7 +1729,13 @@ int parse_cmd_line(int argc, char *argv[], int client_type) fio_options_set_ioengine_opts(l_opts, td); } - ret = fio_cmd_option_parse(td, opt, val); + if ((!val || !strlen(val)) && + l_opts[lidx].has_arg == required_argument) { + log_err("fio: option %s requires an argument\n", opt); + ret = 1; + } else + ret = fio_cmd_option_parse(td, opt, val); + if (ret) { if (td) { put_job(td); @@ -1838,10 +1848,8 @@ int parse_cmd_line(int argc, char *argv[], int client_type) break; } - if (do_exit) { - if (exit_val && !(is_backend || nr_clients)) - exit(exit_val); - } + if (do_exit && !(is_backend || nr_clients)) + exit(exit_val); if (nr_clients && fio_clients_connect()) { do_exit++;