]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
libext2fs: Fix ext2fs_extent_delete() to always point at a valid entry
authorTheodore Ts'o <tytso@mit.edu>
Fri, 14 Mar 2008 03:55:40 +0000 (23:55 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 14 Mar 2008 03:55:40 +0000 (23:55 -0400)
When deleting the last entry in a node, back up the current pointer so
it is always pointing at a valid entry.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
lib/ext2fs/extent.c

index 925355c7a7f673a0b2a78ceb4d3eaef7562cb2ff..9881c775d6579810c27c1c446051762f286e9b44 100644 (file)
@@ -737,6 +737,10 @@ errcode_t ext2fs_extent_delete(ext2_extent_handle_t handle, int flags)
                memmove(cp, cp + sizeof(struct ext3_extent_idx),
                        path->left * sizeof(struct ext3_extent_idx));
                path->left--;
+       } else {
+               struct ext3_extent_idx  *ix = path->curr;
+               ix--;
+               path->curr = ix;
        }
        path->entries--;
        if (path->entries == 0)