From cc37e0d3ae12f47e77da25dea4d6a9439f489f67 Mon Sep 17 00:00:00 2001 From: Jim Garlick Date: Fri, 6 Apr 2007 08:50:15 -0400 Subject: [PATCH] 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" --- lib/ext2fs/ChangeLog | 4 ++++ lib/ext2fs/inode.c | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) 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; } -- 2.47.2