From 7b59b4a8ee4a65ef14eb364cde574d34ec8c014f Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Mon, 15 Jun 2009 01:34:43 -0400 Subject: [PATCH] libext2fs: Fix memory leak in the extents handling function Each time an extent handle is opened and closed, if the inode has an extent tree which does not fit in the inode's i_block structure, a filesystem block buffer was not getting released. Since e2fsck opens an extent handle for every inode using extents, this can translate to a very large amount of memory getting lost. Thanks to Henrik 'Mauritz' Johnson for discovering and pointing out this leak, which he ran into while running the "rdump" command in debugfs. Signed-off-by: "Theodore Ts'o" --- lib/ext2fs/extent.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ext2fs/extent.c b/lib/ext2fs/extent.c index b7eb617..2b88739 100644 --- a/lib/ext2fs/extent.c +++ b/lib/ext2fs/extent.c @@ -168,7 +168,7 @@ extern void ext2fs_extent_free(ext2_extent_handle_t handle) if (handle->inode) ext2fs_free_mem(&handle->inode); if (handle->path) { - for (i=1; i < handle->max_depth; i++) { + for (i=1; i <= handle->max_depth; i++) { if (handle->path[i].buf) ext2fs_free_mem(&handle->path[i].buf); } -- 1.8.3.1