From f93d9f653c0a617556727a9cafb60486b58ae6a8 Mon Sep 17 00:00:00 2001 From: Manish Katiyar Date: Sat, 16 Aug 2008 02:26:43 +0530 Subject: [PATCH] libext2fs : Fix memory leaks in ext2fs_extent_open() Memory allocated for the ext2_extent_handle is not getting freed from all the return paths in case of error. Below patch fixes it. Signed-off-by: "Manish Katiyar" Signed-off-by: Theodore Ts'o --- lib/ext2fs/extent.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/ext2fs/extent.c b/lib/ext2fs/extent.c index 44d7d9b..45c3dc8 100644 --- a/lib/ext2fs/extent.c +++ b/lib/ext2fs/extent.c @@ -222,12 +222,14 @@ extern errcode_t ext2fs_extent_open(ext2_filsys fs, ext2_ino_t ino, handle->inode->i_flags |= EXT4_EXTENTS_FL; } - if (!(handle->inode->i_flags & EXT4_EXTENTS_FL)) - return EXT2_ET_INODE_NOT_EXTENT; + if (!(handle->inode->i_flags & EXT4_EXTENTS_FL)) { + retval = EXT2_ET_INODE_NOT_EXTENT; + goto errout; + } retval = ext2fs_extent_header_verify(eh, sizeof(handle->inode->i_block)); if (retval) - return (retval); + goto errout; handle->max_depth = ext2fs_le16_to_cpu(eh->eh_depth); handle->type = ext2fs_le16_to_cpu(eh->eh_magic); -- 1.8.3.1