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>] [day] [month] [year] [list]
Date:	Thu, 28 Feb 2008 13:22:12 -0600
From:	Eric Sandeen <sandeen@...hat.com>
To:	ext4 development <linux-ext4@...r.kernel.org>
Subject: [PATCH 1/2] regression test for resize2fs moving inodes with inline
 xattrs

The image contains an inode past the resize point with
an inline xattr value of "propervalue"

It also contains deleted inodes which had the xattr value
"oldvalue"

When resize moves the inode down, it should copy the xattr
as well, so that post-resize we see "propervalue" not "oldvalue"

This fails today.

Signed-off-by: Eric Sandeen <sandeen@...hat.com>
---

Index: e2fsprogs-1.40.6/tests/f_inline_xattr_resize/expect
===================================================================
--- /dev/null
+++ e2fsprogs-1.40.6/tests/f_inline_xattr_resize/expect
@@ -0,0 +1,16 @@
+resize2fs test
+debugfs -R ''stat file'' ./test.img 2>&1 | grep ''^Inode\|in inode body\|name = ''
+Inode: 1550   Type: regular    Mode:  0644   Flags: 0x0   Generation: 3498507810
+Extended attributes stored in inode body: 
+  name = "propervalue" (11)
+Exit status is 0
+resize2fs ./test.img 5M
+Resizing the filesystem on ./test.img to 5120 (1k) blocks.
+The filesystem on ./test.img is now 5120 blocks long.
+
+Exit status is 0
+debugfs -R ''stat file'' ./test.img 2>&1 | grep ''^Inode\|in inode body\|name = ''
+Inode: 12   Type: regular    Mode:  0644   Flags: 0x0   Generation: 3498507810
+Extended attributes stored in inode body: 
+  name = "propervalue" (11)
+Exit status is 0
Index: e2fsprogs-1.40.6/tests/f_inline_xattr_resize/name
===================================================================
--- /dev/null
+++ e2fsprogs-1.40.6/tests/f_inline_xattr_resize/name
@@ -0,0 +1 @@
+checking resize2fs shrinking with in-inode extended attributes
Index: e2fsprogs-1.40.6/tests/f_inline_xattr_resize/script
===================================================================
--- /dev/null
+++ e2fsprogs-1.40.6/tests/f_inline_xattr_resize/script
@@ -0,0 +1,55 @@
+if test -x $RESIZE2FS_EXE; then
+
+IMAGE=$test_dir/image.gz
+FSCK_OPT=-yf
+OUT=$test_name.log
+EXP=$test_dir/expect
+
+gunzip < $IMAGE > $TMPFILE
+
+echo "resize2fs test" > $OUT
+
+# Look at existing inline extended attribute
+echo "debugfs -R ''stat file'' $TMPFILE 2>&1 | grep ''^Inode\|in inode body\|name = ''" >> $OUT
+$DEBUGFS -R "stat file" $TMPFILE 2>&1 | grep "^Inode\|in inode body\|name = " >> $OUT
+status=$?
+echo Exit status is $status >> $OUT
+
+# resize it
+echo "resize2fs $TMPFILE 5M" >> $OUT
+$RESIZE2FS $TMPFILE 5M 2>&1 >> $OUT.new 2>&1
+status=$?
+echo Exit status is $status >> $OUT.new
+sed -e '1d' $OUT.new >> $OUT
+
+# Look at inline extended attribute in resized fs
+echo "debugfs -R ''stat file'' $TMPFILE 2>&1 | grep ''^Inode\|in inode body\|name = ''" >> $OUT
+$DEBUGFS -R "stat file" $TMPFILE 2>&1 | grep "^Inode\|in inode body\|name = " >> $OUT
+status=$?
+echo Exit status is $status >> $OUT
+
+rm $TMPFILE $OUT.new
+
+#
+# Do the verification
+#
+
+rm -f $test_name.ok $test_name.failed
+cmp -s $OUT $EXP
+status=$?
+
+if [ "$status" = 0 ] ; then
+	echo "ok"
+	touch $test_name.ok
+else
+	echo "failed"
+	diff $DIFF_OPTS $EXP $OUT > $test_name.failed
+fi
+
+unset IMAGE FSCK_OPT OUT EXP
+
+else #if test -x $RESIZE2FS; then
+        rm -f $test_name.ok $test_name.failed
+        echo "skipped"
+fi
+


Download attachment "image.gz" of type "application/x-gzip" (18907 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ