From 83d9be1d5daf170066dd0e74afdd8e7063c1855e Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Thu, 13 Mar 2008 23:55:40 -0400 Subject: [PATCH] libext2fs: Fix ext2fs_extent_delete() to always point at a valid entry 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" --- lib/ext2fs/extent.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/ext2fs/extent.c b/lib/ext2fs/extent.c index 925355c..9881c77 100644 --- a/lib/ext2fs/extent.c +++ b/lib/ext2fs/extent.c @@ -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) -- 1.8.3.1