X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=filesetup.c;h=478bda8cb0331017b55574d8df67c09cd1151bed;hb=c11a9ddfb9a53f9faa78b72fc79be2f46addc8aa;hp=b1ca9217c1f30a1a7bb8eec6452f1c0ecb8c1316;hpb=293b8c1f23bbe4c735cd00fbb7cca1121bf18016;p=fio.git diff --git a/filesetup.c b/filesetup.c index b1ca9217..478bda8c 100644 --- a/filesetup.c +++ b/filesetup.c @@ -956,7 +956,9 @@ int init_random_map(struct thread_data *td) return 0; for_each_file(td, f, i) { - blocks = (f->real_file_size + td->o.rw_min_bs - 1) / + uint64_t file_size = min(f->real_file_size, f->io_size); + + blocks = (file_size + td->o.rw_min_bs - 1) / (unsigned long long) td->o.rw_min_bs; if (td->o.random_generator == FIO_RAND_GEN_LFSR) { unsigned long seed; @@ -1074,11 +1076,15 @@ int add_file(struct thread_data *td, const char *fname) fio_file_reset(f); if (td->files_size <= td->files_index) { - int new_size = td->o.nr_files + 1; + unsigned int new_size = td->o.nr_files + 1; dprint(FD_FILE, "resize file array to %d files\n", new_size); td->files = realloc(td->files, new_size * sizeof(f)); + if (td->files == NULL) { + log_err("fio: realloc OOM\n"); + assert(0); + } td->files_size = new_size; } td->files[cur_files] = f;