projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix crash on loading unknown IO engine with --ioengine
[fio.git]
/
init.c
diff --git
a/init.c
b/init.c
index 4c5a8dd8ebab33bd28bb6c1a6b12864910cb7aff..74a02e07422f37477f8b3a883c0f02ffa6a22bd1 100644
(file)
--- a/
init.c
+++ b/
init.c
@@
-1739,7
+1739,7
@@
int parse_cmd_line(int argc, char *argv[], int client_type)
write_bw_log = 1;
break;
case 'o':
write_bw_log = 1;
break;
case 'o':
- if (f_out)
+ if (f_out
&& f_out != stdout
)
fclose(f_out);
f_out = fopen(optarg, "w+");
fclose(f_out);
f_out = fopen(optarg, "w+");
@@
-1884,8
+1884,14
@@
int parse_cmd_line(int argc, char *argv[], int client_type)
continue;
td = get_new_job(global, &def_thread, 1);
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);
}
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 (!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;
fio_options_set_ioengine_opts(l_opts, td);
}
break;