summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/ext2fs/dir_iterate.c4
-rw-r--r--tests/f_dup3/expect.14
-rw-r--r--tests/f_dupfsblks/expect.111
3 files changed, 12 insertions, 7 deletions
diff --git a/lib/ext2fs/dir_iterate.c b/lib/ext2fs/dir_iterate.c
index 3b9c57c4..124862ea 100644
--- a/lib/ext2fs/dir_iterate.c
+++ b/lib/ext2fs/dir_iterate.c
@@ -29,7 +29,9 @@ errcode_t ext2fs_get_rec_len(ext2_filsys fs,
{
unsigned int len = dirent->rec_len;
- if (len == EXT4_MAX_REC_LEN || len == 0)
+ if (fs->blocksize < 65536)
+ *rec_len = len;
+ else if (len == EXT4_MAX_REC_LEN || len == 0)
*rec_len = fs->blocksize;
else
*rec_len = (len & 65532) | ((len & 3) << 16);
diff --git a/tests/f_dup3/expect.1 b/tests/f_dup3/expect.1
index 9b1a28fa..eab75a8d 100644
--- a/tests/f_dup3/expect.1
+++ b/tests/f_dup3/expect.1
@@ -24,8 +24,8 @@ File /e2fsck (inode #16, mod time Tue Sep 21 04:32:22 1993)
Clone multiply-claimed blocks? yes
Pass 2: Checking directory structure
-Entry '' in /lost+found (11) has invalid inode #: 24.
-Clear? yes
+Directory inode 11, block #12, offset 0: directory corrupted
+Salvage? yes
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
diff --git a/tests/f_dupfsblks/expect.1 b/tests/f_dupfsblks/expect.1
index aba2f523..3f701091 100644
--- a/tests/f_dupfsblks/expect.1
+++ b/tests/f_dupfsblks/expect.1
@@ -35,11 +35,14 @@ File /quux (inode #14, mod time Thu Aug 5 07:18:09 1999)
Clone multiply-claimed blocks? yes
Pass 2: Checking directory structure
-Entry '' in ??? (12) has invalid inode #: 4194303.
-Clear? yes
+Directory inode 12, block #1, offset 0: directory corrupted
+Salvage? yes
-Entry 'M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?M-^?' in ??? (12) has invalid inode #: 16383.
-Clear? yes
+Directory inode 12, block #2, offset 0: directory corrupted
+Salvage? yes
+
+Directory inode 12, block #3, offset 0: directory corrupted
+Salvage? yes
Entry '' in ??? (12) has a zero-length name.
Clear? yes