lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 31 Jan 2012 15:15:30 -0700
From:	Andreas Dilger <adilger@...mcloud.com>
To:	tytso@....edu
Cc:	"linux-ext4, Andreas Dilger" <adilger@...mcloud.com>
Subject: [PATCH] libext2fs: quiet spurious group checksum errors

If we have to read the backup group descriptor checksums, the UNINIT
flags are cleared to ensure that all of the inodes in the filesystem
are scanned.  However, the code that reset the UNINIT flags did not
reset the group checksum, and this produced many spurious error
messages in e2fsck.

Group descriptor 0 checksum is invalid.  FIXED.
Group descriptor 1 checksum is invalid.  FIXED.
:
:

Recompute checksums after modifying group descriptors to avoid these
error messages.  Remove expected error messages in f_illitable_flexbg.

Signed-off-by: Andreas Dilger <adilger@...mcloud.com>
---
lib/ext2fs/openfs.c               |    3 +++
tests/f_illitable_flexbg/expect.1 |    8 ++------
2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/lib/ext2fs/openfs.c b/lib/ext2fs/openfs.c
index 40a52c5..b1b68ad 100644
--- a/lib/ext2fs/openfs.c
+++ b/lib/ext2fs/openfs.c
@@ -378,6 +378,9 @@ errcode_t ext2fs_open2(const char *name, const char *io_options,
			ext2fs_bg_flags_clear(fs, group, EXT2_BG_BLOCK_UNINIT);
			ext2fs_bg_flags_clear(fs, group, EXT2_BG_INODE_UNINIT);
			ext2fs_bg_itable_unused_set(fs, group, 0);
+			/* The checksum will be reset later, but fix it here
+			 * anyway to avoid printing a lot of spurious errors. */
+			ext2fs_group_desc_csum_set(fs, group);
		}
		ext2fs_mark_super_dirty(fs);
	}
diff --git a/tests/f_illitable_flexbg/expect.1 b/tests/f_illitable_flexbg/expect.1
index 2d8bd0c..af30bd4 100644
--- a/tests/f_illitable_flexbg/expect.1
+++ b/tests/f_illitable_flexbg/expect.1
@@ -1,17 +1,13 @@
../e2fsck/e2fsck: Group descriptors look bad... trying backup blocks...
-One or more block group descriptor checksums are invalid.  Fix? yes
-
-Group descriptor 0 checksum is invalid.  FIXED.
Inode table for group 1 is not in group.  (block 0)
WARNING: SEVERE DATA LOSS POSSIBLE.
Relocate? yes

-Group descriptor 1 checksum is invalid.  FIXED.
-Group descriptor 2 checksum is invalid.  FIXED.
-Group descriptor 3 checksum is invalid.  FIXED.
Pass 1: Checking inodes, blocks, and sizes
Relocating group 1's inode table to 142...
Restarting e2fsck from the beginning...
+One or more block group descriptor checksums are invalid.  Fix? yes
+
Group descriptor 1 checksum is invalid.  FIXED.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
-- 
1.7.2

--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ