From: Jens Axboe Date: Mon, 9 Jun 2014 19:54:22 +0000 (-0600) Subject: Fix crash on loading unknown IO engine with --ioengine X-Git-Tag: fio-2.1.10~3 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=f6ff24cb314bcbdc93175c9884ddb164f2a785d2;hp=cbb1303c21eb43f59c4d2a4bf97a856eb8863773 Fix crash on loading unknown IO engine with --ioengine We don't clean up properly for a command line job when this happens. Signed-off-by: Jens Axboe --- diff --git a/init.c b/init.c index a5468615..74a02e07 100644 --- a/init.c +++ b/init.c @@ -1884,8 +1884,14 @@ int parse_cmd_line(int argc, char *argv[], int client_type) continue; td = get_new_job(global, &def_thread, 1); - if (!td || ioengine_load(td)) - goto out_free; + if (!td || ioengine_load(td)) { + if (td) { + put_job(td); + td = NULL; + } + do_exit++; + break; + } fio_options_set_ioengine_opts(l_opts, td); } @@ -1906,8 +1912,14 @@ int parse_cmd_line(int argc, char *argv[], int client_type) if (!ret && !strcmp(opt, "ioengine")) { free_ioengine(td); - if (ioengine_load(td)) - goto out_free; + if (ioengine_load(td)) { + if (td) { + put_job(td); + td = NULL; + } + do_exit++; + break; + } fio_options_set_ioengine_opts(l_opts, td); } break;