Fixed a potential memory leak in make_file().
[rsync/rsync.git] / flist.c
diff --git a/flist.c b/flist.c
index 732c242..cc7a873 100644 (file)
--- a/flist.c
+++ b/flist.c
@@ -1231,8 +1231,11 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
                        file->mode = save_mode;
        }
 
-       if (basename_len == 0+1)
+       if (basename_len == 0+1) {
+               if (!pool)
+                       unmake_file(file);
                return NULL;
+       }
 
        if (unsort_ndx)
                F_NDX(file) = dir_count;