aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRyan Moeller <[email protected]>2020-11-09 17:57:00 -0500
committerBrian Behlendorf <[email protected]>2021-03-12 16:17:30 -0800
commit9305ff2edf7ff67cdd2cc3d38884fa4f5de6dadd (patch)
tree95bc68066b7af4cc151ecb59acfbf110f718d12d
parente0b53a5dbbfdf8f7cb85bfa7f3c4f9650bc590ec (diff)
ZTS: Fix incorrect use of libtest in user_run by xattr_003_neg
You can't use user_run to eval ksh functions defined in libtest unless you include libtest in the user shell. Fix xattr_003_neg by: * include libtest in the user shell * *then* run get_xattr * assert this fails * use variables for filenames so they don't change in the user's shell * don't log the contents of /etc/passwd * cleanup all byproducts Reviewed-by: John Kennedy <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Ryan Moeller <[email protected]> Closes #11185
-rwxr-xr-xtests/zfs-tests/tests/functional/xattr/xattr_003_neg.ksh44
1 files changed, 25 insertions, 19 deletions
diff --git a/tests/zfs-tests/tests/functional/xattr/xattr_003_neg.ksh b/tests/zfs-tests/tests/functional/xattr/xattr_003_neg.ksh
index a3b25ff66..ba27d043b 100755
--- a/tests/zfs-tests/tests/functional/xattr/xattr_003_neg.ksh
+++ b/tests/zfs-tests/tests/functional/xattr/xattr_003_neg.ksh
@@ -43,34 +43,40 @@
# 4. Check that we're unable to write an xattr as a non-root user
#
-function cleanup {
-
- log_must rm $TESTDIR/myfile.$$
-
+function cleanup
+{
+ rm -f $testfile $tempfile
}
log_assert "read/write xattr on a file with no permissions fails"
log_onexit cleanup
-log_must touch $TESTDIR/myfile.$$
-create_xattr $TESTDIR/myfile.$$ passwd /etc/passwd
+typeset testfile=$TESTDIR/testfile.$$
+typeset tempfile=/tmp/tempfile.$$
+
+log_must touch $testfile
+create_xattr $testfile passwd /etc/passwd
-log_must chmod 000 $TESTDIR/myfile.$$
+log_must chmod 000 $testfile
if is_illumos; then
- log_mustnot su $ZFS_USER -c "runat $TESTDIR/myfile.$$ cat passwd"
- log_mustnot su $ZFS_USER -c "runat $TESTDIR/myfile.$$ cp /etc/passwd ."
+ log_mustnot su $ZFS_USER -c "runat $testfile cat passwd"
+ log_mustnot su $ZFS_USER -c "runat $testfile cp /etc/passwd ."
else
- user_run $ZFS_USER eval \
- "get_xattr passwd $TESTDIR/myfile.$$ >/tmp/passwd.$$"
- log_mustnot diff /etc/passwd /tmp/passwd.$$
- log_must rm /tmp/passwd.$$
+ log_mustnot user_run $ZFS_USER "
+. $STF_SUITE/include/libtest.shlib
+get_xattr passwd $testfile >$tempfile
+"
+ log_mustnot diff -q /etc/passwd $tempfile
+ log_must rm $tempfile
- user_run $ZFS_USER eval \
- "set_xattr_stdin passwd $TESTDIR/myfile.$$ </etc/group"
- log_must chmod 644 $TESTDIR/myfile.$$
- get_xattr passwd $TESTDIR/myfile.$$ >/tmp/passwd.$$
- log_must diff /etc/passwd /tmp/passwd.$$
- log_must rm /tmp/passwd.$$
+ log_mustnot user_run $ZFS_USER "
+. $STF_SUITE/include/libtest.shlib
+set_xattr_stdin passwd $testfile </etc/group
+"
+ log_must chmod 644 $testfile
+ get_xattr passwd $testfile >$tempfile
+ log_must diff -q /etc/passwd $tempfile
+ log_must rm $tempfile
fi
log_pass "read/write xattr on a file with no permissions fails"