Merge branch 'master' of ssh://git.kernel.dk/data/git/fio
[fio.git] / filesetup.c
index 490f0fc2101bc912e6f27ab55b93640471031430..79eea9f879fb42b1f21607e5fe4df1fe4d498cd5 100644 (file)
@@ -711,8 +711,8 @@ static unsigned long long get_fs_free_counts(struct thread_data *td)
                if (fm)
                        continue;
 
-               fm = malloc(sizeof(*fm));
-               strcpy(fm->__base, buf);
+               fm = calloc(1, sizeof(*fm));
+               strncpy(fm->__base, buf, sizeof(fm->__base) - 1);
                fm->base = basename(fm->__base);
                fm->key = sb.st_dev;
                flist_add(&fm->list, &list);
@@ -885,6 +885,11 @@ int setup_files(struct thread_data *td)
        if (!o->size || o->size > total_size)
                o->size = total_size;
 
+       if (o->size < td_min_bs(td)) {
+               log_err("fio: blocksize too large for data set\n");
+               goto err_out;
+       }
+
        /*
         * See if we need to extend some files
         */