Fix leak on error path in extend_file()
[fio.git] / filesetup.c
index 1c529792afc952defb9f1422b8d1a953846b3f95..bf56112b72b9784cf32583ebc0dbba72324b9f86 100644 (file)
@@ -38,7 +38,7 @@ static int extend_file(struct thread_data *td, struct fio_file *f)
        int r, new_layout = 0, unlink_file = 0, flags;
        unsigned long long left;
        unsigned int bs;
-       char *b;
+       char *b = NULL;
 
        if (read_only) {
                log_err("fio: refusing extend of file due to read-only\n");
@@ -189,6 +189,8 @@ done:
 err:
        close(f->fd);
        f->fd = -1;
+       if (b)
+               free(b);
        return 1;
 }
 
@@ -1402,7 +1404,8 @@ static int recurse_dir(struct thread_data *td, const char *dirname)
                if (lstat(full_path, &sb) == -1) {
                        if (errno != ENOENT) {
                                td_verror(td, errno, "stat");
-                               return 1;
+                               ret = 1;
+                               break;
                        }
                }