On 2023/6/2 18:24, Maxim Korotkov wrote:
In error handling cases, the function exited without releasing memory

Signed-off-by: Maxim Korotkov <korotkov.maxi...@gmail.com>
---
changelog: fixed code review remarks
  fsck/dir.c | 10 +++++++---
  1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/fsck/dir.c b/fsck/dir.c
index 4a3eb6e..29c89de 100644
--- a/fsck/dir.c
+++ b/fsck/dir.c
@@ -704,7 +704,8 @@ int f2fs_create(struct f2fs_sb_info *sbi, struct dentry *de)
        ret = convert_inline_dentry(sbi, parent, ni.blk_addr);
        if (ret) {
                MSG(0, "Convert inline dentry for pino=%x failed.\n", de->pino);
-               return -1;
+               ret = -1;
+               goto free_parent_dir;
        }
ret = f2fs_find_entry(sbi, parent, de);
@@ -713,6 +714,7 @@ int f2fs_create(struct f2fs_sb_info *sbi, struct dentry *de)
                                        de->name, de->pino, ret);
                if (de->file_type == F2FS_FT_REG_FILE)
                        de->ino = 0;
+               ret = 0;
                goto free_parent_dir;
        }
@@ -728,7 +730,8 @@ int f2fs_create(struct f2fs_sb_info *sbi, struct dentry *de)
                if (hardlink_ni.blk_addr == NULL_ADDR) {
                        MSG(1, "No original inode for hard link to_ino=%x\n",
                                found_hardlink->to_ino);
-                       return -1;
+                       ret = -1;
+                       goto free_child_dir;
                }
/* Use previously-recorded inode */
@@ -750,6 +753,7 @@ int f2fs_create(struct f2fs_sb_info *sbi, struct dentry *de)
        if (ret) {
                MSG(0, "Skip the existing \"%s\" pino=%x ERR=%d\n",
                                        de->name, de->pino, ret);
+               ret = 0;
                goto free_child_dir;
        }
@@ -804,7 +808,7 @@ free_child_dir:
        free(child);
  free_parent_dir:
        free(parent);
-       return 0;
+       return ret;     

Oh, unneeded indent in the end of sentence.

Thanks,

  }
int f2fs_mkdir(struct f2fs_sb_info *sbi, struct dentry *de)


_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to