]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
libext2fs: Fix fencepost error in ext2fs_extent_insert()
authorTheodore Ts'o <tytso@mit.edu>
Fri, 14 Mar 2008 14:42:50 +0000 (10:42 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 14 Mar 2008 14:42:50 +0000 (10:42 -0400)
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" <tytso@mit.edu>
lib/ext2fs/extent.c

index 9881c775d6579810c27c1c446051762f286e9b44..ab211b17a0a7f135793b4623abb974766a0542e0 100644 (file)
@@ -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++;