From 07a2919d7a86607d42f5fb69f1f0ba98097d4d98 Mon Sep 17 00:00:00 2001 From: Nick Principe Date: Mon, 1 Jul 2019 15:45:21 -0400 Subject: [PATCH] Increase maximum length of line in jobs file to 8192 Increase OPT_LEN_MAX to 8192, use OPT_LEN_MAX for string in __parse_jobs_ini(), and document line length limit for job files in man page. Signed-off-by: Nick Principe nick@princi.pe --- fio.1 | 2 ++ init.c | 6 +++--- parse.h | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/fio.1 b/fio.1 index 84b80eee..156201ad 100644 --- a/fio.1 +++ b/fio.1 @@ -201,6 +201,8 @@ argument, \fB\-\-cmdhelp\fR will detail the given \fIcommand\fR. See the `examples/' directory for inspiration on how to write job files. Note the copyright and license requirements currently apply to `examples/' files. + +Note that the maximum length of a line in the job file is 8192 bytes. .SH "JOB FILE PARAMETERS" Some parameters take an option of a given type, such as an integer or a string. Anywhere a numeric value is required, an arithmetic expression may be diff --git a/init.c b/init.c index 73834279..f7e7296f 100644 --- a/init.c +++ b/init.c @@ -1887,7 +1887,7 @@ static int __parse_jobs_ini(struct thread_data *td, } } - string = malloc(4096); + string = malloc(OPT_LEN_MAX); /* * it's really 256 + small bit, 280 should suffice @@ -1920,7 +1920,7 @@ static int __parse_jobs_ini(struct thread_data *td, if (is_buf) p = strsep(&file, "\n"); else - p = fgets(string, 4096, f); + p = fgets(string, OPT_LEN_MAX, f); if (!p) break; } @@ -1989,7 +1989,7 @@ static int __parse_jobs_ini(struct thread_data *td, if (is_buf) p = strsep(&file, "\n"); else - p = fgets(string, 4096, f); + p = fgets(string, OPT_LEN_MAX, f); if (!p) break; dprint(FD_PARSE, "%s", p); diff --git a/parse.h b/parse.h index b47a02c7..9b4e2f32 100644 --- a/parse.h +++ b/parse.h @@ -37,7 +37,7 @@ struct value_pair { void *cb; /* sub-option callback */ }; -#define OPT_LEN_MAX 4096 +#define OPT_LEN_MAX 8192 #define PARSE_MAX_VP 24 /* -- 2.25.1