X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=parse.c;h=ace34a697d20af4ffcff9fd013898927f3dd550c;hp=bf1dea908817a5cf8530d0d76aec603173a20f47;hb=0401bca6b35ee32681462713ce9bc0cc2accbbf2;hpb=e8be2ad711db813537a1f2a6a6939c42909ba5cc diff --git a/parse.c b/parse.c index bf1dea90..ace34a69 100644 --- a/parse.c +++ b/parse.c @@ -452,9 +452,9 @@ int parse_option(const char *opt, struct fio_option *options, void *data) { struct fio_option *o; char *pre, *post; - char tmp[64]; + char *tmp; - strncpy(tmp, opt, sizeof(tmp) - 1); + tmp = strdup(opt); pre = strchr(tmp, '='); if (pre) { @@ -470,13 +470,17 @@ int parse_option(const char *opt, struct fio_option *options, void *data) if (!o) { fprintf(stderr, "Bad option %s\n", tmp); + free(tmp); return 1; } - if (!handle_option(o, post, data)) + if (!handle_option(o, post, data)) { + free(tmp); return 0; + } fprintf(stderr, "fio: failed parsing %s\n", opt); + free(tmp); return 1; }