From: Brian Behlendorf Date: Wed, 21 Mar 2007 21:43:37 +0000 (-0400) Subject: [COVERITY] Fix (error case) memory leak in libext2fs (ext2fs_image_inode_write) X-Git-Tag: E2FSPROGS-1_40~100 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f93625b292e69e03755fd63cf3fa6f2cce14a344;p=thirdparty%2Fe2fsprogs.git [COVERITY] Fix (error case) memory leak in libext2fs (ext2fs_image_inode_write) Use pre-existing early exit label in function to handle proper error code return and local memory allocation cleanup. Coverity ID: 23: Resource Leak Signed-off-by: Brian Behlendorf --- diff --git a/lib/ext2fs/ChangeLog b/lib/ext2fs/ChangeLog index b0c0f7f85..7d55e9d90 100644 --- a/lib/ext2fs/ChangeLog +++ b/lib/ext2fs/ChangeLog @@ -1,7 +1,8 @@ 2007-03-21 Theodore Tso - * inode.c (ext2fs_write_inode_full): Fix memory leak on error - return (when the inode table is missing). + * imager.c (ext2fs_image_inode_write), inode.c + (ext2fs_write_inode_full): Fix memory leak on error return + (when the inode table is missing). 2006-11-30 Theodore Tso diff --git a/lib/ext2fs/imager.c b/lib/ext2fs/imager.c index 596fbbebe..ac8309cfd 100644 --- a/lib/ext2fs/imager.c +++ b/lib/ext2fs/imager.c @@ -72,8 +72,10 @@ errcode_t ext2fs_image_inode_write(ext2_filsys fs, int fd, int flags) for (group = 0; group < fs->group_desc_count; group++) { blk = fs->group_desc[(unsigned)group].bg_inode_table; - if (!blk) - return EXT2_ET_MISSING_INODE_TABLE; + if (!blk) { + retval = EXT2_ET_MISSING_INODE_TABLE; + goto errout; + } left = fs->inode_blocks_per_group; while (left) { c = BUF_BLOCKS;