From b53a215550e2a8571fd0970a77ddaf77ccd53798 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Thu, 30 Nov 2017 16:49:23 -0700 Subject: [PATCH] options: don't overrun bssplit array Since we now have a different number of splits we support for zones and block size splits, make sure we pass in the right max. Signed-off-by: Jens Axboe --- options.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/options.c b/options.c index 9e3e960c..30f79623 100644 --- a/options.c +++ b/options.c @@ -61,7 +61,8 @@ struct split { }; static int split_parse_ddir(struct thread_options *o, struct split *split, - enum fio_ddir ddir, char *str, bool absolute) + enum fio_ddir ddir, char *str, bool absolute, + unsigned int max_splits) { unsigned long long perc; unsigned int i; @@ -109,7 +110,7 @@ static int split_parse_ddir(struct thread_options *o, struct split *split, split->val1[i] = val; split->val2[i] = perc; i++; - if (i == ZONESPLIT_MAX) + if (i == max_splits) break; } @@ -126,7 +127,7 @@ static int bssplit_ddir(struct thread_options *o, enum fio_ddir ddir, char *str, memset(&split, 0, sizeof(split)); - if (split_parse_ddir(o, &split, ddir, str, data)) + if (split_parse_ddir(o, &split, ddir, str, data, BSSPLIT_MAX)) return 1; if (!split.nr) return 0; @@ -846,7 +847,7 @@ static int zone_split_ddir(struct thread_options *o, enum fio_ddir ddir, memset(&split, 0, sizeof(split)); - if (split_parse_ddir(o, &split, ddir, str, absolute)) + if (split_parse_ddir(o, &split, ddir, str, absolute, ZONESPLIT_MAX)) return 1; if (!split.nr) return 0; -- 2.25.1