From c48c0be79173897824d8f439c39374f2588931dc Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Thu, 31 Jul 2008 19:55:02 +0200 Subject: [PATCH] Detect and complain on smalloc failures Signed-off-by: Jens Axboe --- filesetup.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/filesetup.c b/filesetup.c index 8b045609..a52dae0f 100644 --- a/filesetup.c +++ b/filesetup.c @@ -694,6 +694,11 @@ int add_file(struct thread_data *td, const char *fname) dprint(FD_FILE, "add file %s\n", fname); f = smalloc(sizeof(*f)); + if (!f) { + log_err("fio: smalloc OOM\n"); + assert(0); + } + f->fd = -1; dprint(FD_FILE, "resize file array to %d files\n", cur_files + 1); @@ -712,7 +717,11 @@ int add_file(struct thread_data *td, const char *fname) sprintf(file_name + len, "%s", fname); f->file_name = smalloc_strdup(file_name); - + if (!f->file_name) { + log_err("fio: smalloc OOM\n"); + assert(0); + } + get_file_type(f); switch (td->o.file_lock_mode) { @@ -905,9 +914,18 @@ void dup_files(struct thread_data *td, struct thread_data *org) struct fio_file *__f; __f = smalloc(sizeof(*__f)); - + if (!__f) { + log_err("fio: smalloc OOM\n"); + assert(0); + } + if (f->file_name) { __f->file_name = smalloc_strdup(f->file_name); + if (!__f->file_name) { + log_err("fio: smalloc OOM\n"); + assert(0); + } + __f->filetype = f->filetype; } -- 2.25.1