From 2d3ea141ccf280dbf8b04a43c61d388cd147a568 Mon Sep 17 00:00:00 2001 From: Sheng Yong Date: Mon, 28 Dec 2015 11:33:22 +0000 Subject: [PATCH] fsck.f2fs: fix double free invalid checkpoint The invalid checkpoin is freed in validate_checkpoint(). Signed-off-by: Sheng Yong Signed-off-by: Jaegeuk Kim --- fsck/mount.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/fsck/mount.c b/fsck/mount.c index fe68f37..7533926 100644 --- a/fsck/mount.c +++ b/fsck/mount.c @@ -469,11 +469,8 @@ int get_valid_checkpoint(struct f2fs_sb_info *sbi) cur_page = cp2; sbi->cur_cp = 2; version = cp2_version; - } else { - free(cp1); - free(cp2); + } else goto fail_no_cp; - } MSG(0, "Info: CKPT version = %llx\n", version); @@ -495,8 +492,10 @@ int get_valid_checkpoint(struct f2fs_sb_info *sbi) memcpy(ckpt + i * blk_size, cur_page, blk_size); } } - free(cp1); - free(cp2); + if (cp1) + free(cp1); + if (cp2) + free(cp2); return 0; fail_no_cp: -- 2.7.4