Whamcloud - gitweb
Fix memory leak in ext2fs_write_new_inode()
authorJim Garlick <garlick@llnl.gov>
Fri, 6 Apr 2007 12:50:15 +0000 (08:50 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 6 Apr 2007 12:50:15 +0000 (08:50 -0400)
The following patch addresses a memory leak in libext2fs
that occurs when using ext2fs_write_new_inode() on a file system
configured with large inodes.

Signed-off-by: Jim Garlick <garlick@llnl.gov>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
lib/ext2fs/ChangeLog
lib/ext2fs/inode.c

index 4ea05b9..90909d0 100644 (file)
@@ -1,3 +1,7 @@
+2007-04-04  Jim Garlick <garlick@llnl.gov>
+
+       * inode.c (ext2fs_write_new_inode): Fix memory leak.
+
 2007-04-04  Theodore Tso  <tytso@mit.edu>
 
        * tdb.c, tdb.h, Makefile.in: Add the tdb library from Samba into
index 6c845a6..e977c73 100644 (file)
@@ -735,6 +735,7 @@ errcode_t ext2fs_write_new_inode(ext2_filsys fs, ext2_ino_t ino,
        struct ext2_inode       *buf;
        int                     size = EXT2_INODE_SIZE(fs->super);
        struct ext2_inode_large *large_inode;
+       errcode_t               retval;
 
        if (size == sizeof(struct ext2_inode))
                return ext2fs_write_inode_full(fs, ino, inode,
@@ -751,7 +752,9 @@ errcode_t ext2fs_write_new_inode(ext2_filsys fs, ext2_ino_t ino,
        large_inode->i_extra_isize = sizeof(struct ext2_inode_large) - 
                EXT2_GOOD_OLD_INODE_SIZE;
 
-       return ext2fs_write_inode_full(fs, ino, buf, size);
+       retval = ext2fs_write_inode_full(fs, ino, buf, size);
+       free(buf);
+       return retval;
 }