In the exception branch,if we donot call ext2fs_badblocks_list_free() to free bb_list|badblock_list, memory leak will occur. Signed-off-by: zhanchengbin <zhanchengbin1@xxxxxxxxxx> --- misc/dumpe2fs.c | 1 + resize/resize2fs.c | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/misc/dumpe2fs.c b/misc/dumpe2fs.c index 3f4fc4ed..ef6d1cb8 100644 --- a/misc/dumpe2fs.c +++ b/misc/dumpe2fs.c @@ -338,6 +338,7 @@ static void list_bad_blocks(ext2_filsys fs, int dump) if (retval) { com_err("ext2fs_badblocks_list_iterate_begin", retval, "%s", _("while printing bad block list")); + ext2fs_badblocks_list_free(bb_list); return; } if (dump) { diff --git a/resize/resize2fs.c b/resize/resize2fs.c index b9783e8c..3b9b1ed1 100644 --- a/resize/resize2fs.c +++ b/resize/resize2fs.c @@ -1781,11 +1781,11 @@ static errcode_t block_mover(ext2_resize_t rfs) fs->inode_blocks_per_group, &rfs->itable_buf); if (retval) - return retval; + goto errout; } retval = ext2fs_create_extent_table(&rfs->bmap, 0); if (retval) - return retval; + goto errout; /* * The first step is to figure out where all of the blocks -- 2.27.0