From 252b7363690e71bfd01517d6b348a5996d98ac7f Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Fri, 14 Mar 2008 10:42:50 -0400 Subject: [PATCH] libext2fs: Fix fencepost error in ext2fs_extent_insert() ext2fs_extent_insert() was copying n-1 of the existing extents when moving things down to make room for the new extent. Signed-off-by: "Theodore Ts'o" --- lib/ext2fs/extent.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/ext2fs/extent.c b/lib/ext2fs/extent.c index 9881c77..ab211b1 100644 --- a/lib/ext2fs/extent.c +++ b/lib/ext2fs/extent.c @@ -454,6 +454,7 @@ retry: return EXT2_ET_NO_CURRENT_NODE; extent->e_flags = 0; + dbg_printf("(Left %d)\n", path->left); if (handle->level == handle->max_depth) { ex = (struct ext3_extent *) ix; @@ -690,7 +691,7 @@ errcode_t ext2fs_extent_insert(ext2_extent_handle_t handle, int flags, if (path->left > 0) memmove(ix + 1, ix, - path->left * sizeof(struct ext3_extent_idx)); + (path->left+1) * sizeof(struct ext3_extent_idx)); path->left++; path->entries++; -- 1.8.3.1