Whamcloud - gitweb
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 925355c..9881c77 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)