From: Brian Behlendorf Date: Wed, 28 Mar 2007 16:43:05 +0000 (-0400) Subject: [COVERITY] Fix (error case only) memory leak in e2fsck pass #4 X-Git-Tag: E2FSPROGS-1_40~86 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=06c9c6ffc16cbf4c9513ddea3c73328f2a937eb7;p=thirdparty%2Fe2fsprogs.git [COVERITY] Fix (error case only) memory leak in e2fsck pass #4 Coverity ID: 42: Resource Leak Signed-off-by: Brian Behlendorf --- diff --git a/e2fsck/ChangeLog b/e2fsck/ChangeLog index 2bde52b97..4c97cd326 100644 --- a/e2fsck/ChangeLog +++ b/e2fsck/ChangeLog @@ -2,7 +2,7 @@ * pass1.c (e2fsck_pass1, check_ext_attr), pass5.c (check_block_bitmaps, check_inode_bitmaps), - swapfs.c (swap_inodes), + pass4.c (e2fsck_pass4), swapfs.c (swap_inodes), unix.c (parse_extended_opts): Fix memory leaks 2007-03-21 Theodore Tso diff --git a/e2fsck/pass4.c b/e2fsck/pass4.c index 0f92da0d4..dfb3a37ba 100644 --- a/e2fsck/pass4.c +++ b/e2fsck/pass4.c @@ -114,12 +114,12 @@ void e2fsck_pass4(e2fsck_t ctx) /* Protect loop from wrap-around if s_inodes_count maxed */ for (i=1; i <= fs->super->s_inodes_count && i > 0; i++) { if (ctx->flags & E2F_FLAG_SIGNAL_MASK) - return; + goto errout; if ((i % fs->super->s_inodes_per_group) == 0) { group++; if (ctx->progress) if ((ctx->progress)(ctx, 4, group, maxgroup)) - return; + goto errout; } if (i == EXT2_BAD_INO || (i > EXT2_ROOT_INO && i < EXT2_FIRST_INODE(fs->super))) @@ -167,6 +167,7 @@ void e2fsck_pass4(e2fsck_t ctx) ctx->inode_bb_map = 0; ext2fs_free_inode_bitmap(ctx->inode_imagic_map); ctx->inode_imagic_map = 0; +errout: if (buf) ext2fs_free_mem(&buf); #ifdef RESOURCE_TRACK