]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
[COVERITY] Fix (error case) memory leak in libext2fs (ext2fs_image_inode_write)
authorBrian Behlendorf <behlendorf1@llnl.gov>
Wed, 21 Mar 2007 21:43:37 +0000 (17:43 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Wed, 21 Mar 2007 21:43:37 +0000 (17:43 -0400)
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 <behlendorf1@llnl.gov>
lib/ext2fs/ChangeLog
lib/ext2fs/imager.c

index b0c0f7f856078bef36f9a1c79bb84746f47e7d45..7d55e9d90fef3bbbbe89f9df7c0d5b6029cb4a45 100644 (file)
@@ -1,7 +1,8 @@
 2007-03-21  Theodore Tso  <tytso@mit.edu>
 
-       * 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  <tytso@mit.edu>
 
index 596fbbebe002f4d1ee3206d27c722bde8aa77105..ac8309cfdfef8a0c48ce058d5c5d766b06156517 100644 (file)
@@ -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;