From: Jim Garlick Date: Fri, 6 Apr 2007 12:50:15 +0000 (-0400) Subject: Fix memory leak in ext2fs_write_new_inode() X-Git-Tag: E2FSPROGS-1_40~70 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cc37e0d3ae12f47e77da25dea4d6a9439f489f67;p=thirdparty%2Fe2fsprogs.git Fix memory leak in ext2fs_write_new_inode() 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 Signed-off-by: "Theodore Ts'o" --- diff --git a/lib/ext2fs/ChangeLog b/lib/ext2fs/ChangeLog index 4ea05b9bb..90909d023 100644 --- a/lib/ext2fs/ChangeLog +++ b/lib/ext2fs/ChangeLog @@ -1,3 +1,7 @@ +2007-04-04 Jim Garlick + + * inode.c (ext2fs_write_new_inode): Fix memory leak. + 2007-04-04 Theodore Tso * tdb.c, tdb.h, Makefile.in: Add the tdb library from Samba into diff --git a/lib/ext2fs/inode.c b/lib/ext2fs/inode.c index 6c845a634..e977c73f9 100644 --- a/lib/ext2fs/inode.c +++ b/lib/ext2fs/inode.c @@ -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; }