X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=diskutil.c;h=27ddb46b7fecdae75114874210ed2ae135d21bd6;hb=915ca9807717762e288ded3eba0fe5fc82a2ddcd;hp=294d2d3d084a371fb3b1b47a4fb2087046d9f262;hpb=22497370943163bd40d49f30c31f694749206ce4;p=fio.git diff --git a/diskutil.c b/diskutil.c index 294d2d3d..27ddb46b 100644 --- a/diskutil.c +++ b/diskutil.c @@ -179,6 +179,7 @@ static int get_device_numbers(char *file_name, int *maj, int *min) /* * must be a file, open "." in that path */ + tempname[PATH_MAX - 1] = '\0'; strncpy(tempname, file_name, PATH_MAX - 1); p = dirname(tempname); if (stat(p, &st)) { @@ -291,10 +292,8 @@ static struct disk_util *disk_util_add(struct thread_data *td, int majdev, dprint(FD_DISKUTIL, "add maj/min %d/%d: %s\n", majdev, mindev, path); du = smalloc(sizeof(*du)); - if (!du) { - log_err("fio: smalloc() pool exhausted\n"); + if (!du) return NULL; - } memset(du, 0, sizeof(*du)); INIT_FLIST_HEAD(&du->list); @@ -426,6 +425,7 @@ static struct disk_util *__init_per_file_disk_util(struct thread_data *td, log_err("unknown sysfs layout\n"); return NULL; } + tmp[PATH_MAX - 1] = '\0'; strncpy(tmp, p, PATH_MAX - 1); sprintf(path, "%s", tmp); } @@ -489,7 +489,7 @@ void init_disk_util(struct thread_data *td) unsigned int i; if (!td->o.do_disk_util || - (td->io_ops->flags & (FIO_DISKLESSIO | FIO_NODISKUTIL))) + td_ioengine_flagged(td, FIO_DISKLESSIO | FIO_NODISKUTIL)) return; for_each_file(td, f, i)