From f6ff24cb314bcbdc93175c9884ddb164f2a785d2 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Mon, 9 Jun 2014 13:54:22 -0600 Subject: [PATCH] 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 --- init.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) 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; -- 2.25.1