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" <mkatiyar@xxxxxxxxx> --- lib/ext2fs/extent.c | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/ext2fs/extent.c b/lib/ext2fs/extent.c index 44d7d9b..42a6cb9 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); + if (retval) + goto errout; handle->max_depth = ext2fs_le16_to_cpu(eh->eh_depth); handle->type = ext2fs_le16_to_cpu(eh->eh_magic); -- 1.5.4.3 -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html