From: Theodore Ts'o Date: Fri, 14 Mar 2008 14:42:50 +0000 (-0400) Subject: libext2fs: Fix fencepost error in ext2fs_extent_insert() X-Git-Tag: v1.41-WIP-0427~69 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=252b7363690e71bfd01517d6b348a5996d98ac7f;p=thirdparty%2Fe2fsprogs.git 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" --- diff --git a/lib/ext2fs/extent.c b/lib/ext2fs/extent.c index 9881c775d..ab211b17a 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++;