* [LTP] [PATCH 1/3] tst_test.sh: cd to $LTPROOT before umount
2022-09-23 10:55 [LTP] [PATCH 0/3] IMA + shell API fixes on umount Petr Vorel
@ 2022-09-23 10:55 ` Petr Vorel
2022-09-23 12:05 ` Cyril Hrubis
2022-09-23 10:55 ` [LTP] [PATCH 2/3] ima_setup.sh: Use TST_MOUNT_DEVICE Petr Vorel
2022-09-23 10:55 ` [LTP] [PATCH 3/3] ima_setup.sh: Use tst_supported_fs instead of df Petr Vorel
2 siblings, 1 reply; 11+ messages in thread
From: Petr Vorel @ 2022-09-23 10:55 UTC (permalink / raw)
To: ltp
It's safer not to expect tests go away from the mountpoint
before trying to unmount it, because tests can cd to $TST_MNTPOINT
if they use TST_MOUNT_DEVICE=1. Also better to handle it in the library
than in all tests which may need it.
This fix ima_keys.sh and other following IMA/EVM tests which fail on
systems with tmpfs on $TMPDIR since 1f6bd6e66:
ima_keys 1 TCONF: IMA policy does not specify '^measure.*func=KEY_CHECK'
tst_device.c:255: TWARN: ioctl(/dev/loop0, LOOP_CLR_FD, 0) no ENXIO for too long
Usage:
tst_device acquire [size [filename]]
tst_device release /path/to/device
tst_device clear /path/to/device
ima_keys 1 TWARN: Failed to release device '/dev/loop0'
rm: cannot remove '/tmp/LTP_ima_keys.YArl935DCg/mntpoint': Device or resource busy
Fixme: 1f6bd6e66 ("tst_test.sh: Add $TST_ALL_FILESYSTEMS")
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
testcases/lib/tst_test.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/testcases/lib/tst_test.sh b/testcases/lib/tst_test.sh
index 01c01b79b..7ec744cac 100644
--- a/testcases/lib/tst_test.sh
+++ b/testcases/lib/tst_test.sh
@@ -29,6 +29,7 @@ _tst_do_exit()
local ret=0
TST_DO_EXIT=1
+ cd "$LTPROOT"
[ "$TST_MOUNT_FLAG" = 1 ] && tst_umount
if [ "$TST_NEEDS_DEVICE" = 1 -a "$TST_DEVICE_FLAG" = 1 ]; then
@@ -38,7 +39,6 @@ _tst_do_exit()
fi
if [ "$TST_NEEDS_TMPDIR" = 1 -a -n "$TST_TMPDIR" ]; then
- cd "$LTPROOT"
rm -r "$TST_TMPDIR"
[ "$TST_TMPDIR_RHOST" = 1 ] && tst_cleanup_rhost
fi
@@ -794,6 +794,7 @@ _tst_run_iterations()
fi
if [ "$TST_MOUNT_FLAG" = 1 ]; then
+ cd "$LTPROOT"
tst_umount
TST_MOUNT_FLAG=
fi
--
2.37.3
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [LTP] [PATCH 1/3] tst_test.sh: cd to $LTPROOT before umount
2022-09-23 10:55 ` [LTP] [PATCH 1/3] tst_test.sh: cd to $LTPROOT before umount Petr Vorel
@ 2022-09-23 12:05 ` Cyril Hrubis
2022-09-23 12:27 ` Petr Vorel
0 siblings, 1 reply; 11+ messages in thread
From: Cyril Hrubis @ 2022-09-23 12:05 UTC (permalink / raw)
To: Petr Vorel; +Cc: ltp
Hi!
> It's safer not to expect tests go away from the mountpoint
> before trying to unmount it, because tests can cd to $TST_MNTPOINT
> if they use TST_MOUNT_DEVICE=1. Also better to handle it in the library
> than in all tests which may need it.
>
> This fix ima_keys.sh and other following IMA/EVM tests which fail on
> systems with tmpfs on $TMPDIR since 1f6bd6e66:
>
> ima_keys 1 TCONF: IMA policy does not specify '^measure.*func=KEY_CHECK'
> tst_device.c:255: TWARN: ioctl(/dev/loop0, LOOP_CLR_FD, 0) no ENXIO for too long
>
> Usage:
> tst_device acquire [size [filename]]
> tst_device release /path/to/device
> tst_device clear /path/to/device
>
> ima_keys 1 TWARN: Failed to release device '/dev/loop0'
> rm: cannot remove '/tmp/LTP_ima_keys.YArl935DCg/mntpoint': Device or resource busy
>
> Fixme: 1f6bd6e66 ("tst_test.sh: Add $TST_ALL_FILESYSTEMS")
^
Fixes?
Otherwise:
Reviewed-by: Cyril Hrubis <chrubis@suse.cz>
--
Cyril Hrubis
chrubis@suse.cz
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: [LTP] [PATCH 1/3] tst_test.sh: cd to $LTPROOT before umount
2022-09-23 12:05 ` Cyril Hrubis
@ 2022-09-23 12:27 ` Petr Vorel
0 siblings, 0 replies; 11+ messages in thread
From: Petr Vorel @ 2022-09-23 12:27 UTC (permalink / raw)
To: Cyril Hrubis; +Cc: ltp
> Hi!
> > It's safer not to expect tests go away from the mountpoint
> > before trying to unmount it, because tests can cd to $TST_MNTPOINT
> > if they use TST_MOUNT_DEVICE=1. Also better to handle it in the library
> > than in all tests which may need it.
> > This fix ima_keys.sh and other following IMA/EVM tests which fail on
> > systems with tmpfs on $TMPDIR since 1f6bd6e66:
> > ima_keys 1 TCONF: IMA policy does not specify '^measure.*func=KEY_CHECK'
> > tst_device.c:255: TWARN: ioctl(/dev/loop0, LOOP_CLR_FD, 0) no ENXIO for too long
> > Usage:
> > tst_device acquire [size [filename]]
> > tst_device release /path/to/device
> > tst_device clear /path/to/device
> > ima_keys 1 TWARN: Failed to release device '/dev/loop0'
> > rm: cannot remove '/tmp/LTP_ima_keys.YArl935DCg/mntpoint': Device or resource busy
> > Fixme: 1f6bd6e66 ("tst_test.sh: Add $TST_ALL_FILESYSTEMS")
> ^
> Fixes?
Lol, thanks for spotting this.
> Otherwise:
> Reviewed-by: Cyril Hrubis <chrubis@suse.cz>
Thanks!
Kind regards,
Petr
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 11+ messages in thread
* [LTP] [PATCH 2/3] ima_setup.sh: Use TST_MOUNT_DEVICE
2022-09-23 10:55 [LTP] [PATCH 0/3] IMA + shell API fixes on umount Petr Vorel
2022-09-23 10:55 ` [LTP] [PATCH 1/3] tst_test.sh: cd to $LTPROOT before umount Petr Vorel
@ 2022-09-23 10:55 ` Petr Vorel
2022-09-23 13:37 ` Cyril Hrubis
2022-09-23 10:55 ` [LTP] [PATCH 3/3] ima_setup.sh: Use tst_supported_fs instead of df Petr Vorel
2 siblings, 1 reply; 11+ messages in thread
From: Petr Vorel @ 2022-09-23 10:55 UTC (permalink / raw)
To: ltp
Use TST_MOUNT_DEVICE instead of mounting loop device manually.
Also move unset TST_NEEDS_DEVICE before loading tst_test.sh, as it's not
a good idea to modify the API variables after loading tst_test.sh.
NOTE: removed cd before umount as it has been resolved in the shell API
(tst_test.sh) in the previous commit.
Fixes: 04021637f ("tst_test.sh: Cleanup getopts usage")
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
.../security/integrity/ima/tests/ima_setup.sh | 29 +++++--------------
1 file changed, 8 insertions(+), 21 deletions(-)
diff --git a/testcases/kernel/security/integrity/ima/tests/ima_setup.sh b/testcases/kernel/security/integrity/ima/tests/ima_setup.sh
index a626aae44..055701aff 100644
--- a/testcases/kernel/security/integrity/ima/tests/ima_setup.sh
+++ b/testcases/kernel/security/integrity/ima/tests/ima_setup.sh
@@ -10,8 +10,9 @@ TST_SETUP="ima_setup"
TST_CLEANUP_CALLER="$TST_CLEANUP"
TST_CLEANUP="ima_cleanup"
TST_NEEDS_ROOT=1
+TST_MOUNT_DEVICE=1
-# TST_NEEDS_DEVICE can be unset, therefore specify explicitly
+# TST_MOUNT_DEVICE can be unset, therefore specify explicitly
TST_NEEDS_TMPDIR=1
SYSFS="/sys"
@@ -142,15 +143,6 @@ mount_helper()
echo $default_dir
}
-mount_loop_device()
-{
- local ret
-
- tst_mkfs
- tst_mount
- cd $TST_MNTPOINT
-}
-
print_ima_config()
{
local config="${KCONFIG_PATH:-/boot/config-$(uname -r)}"
@@ -183,9 +175,9 @@ ima_setup()
print_ima_config
- if [ "$TST_NEEDS_DEVICE" = 1 ]; then
+ if [ "$TST_MOUNT_DEVICE" = 1 ]; then
tst_res TINFO "\$TMPDIR is on tmpfs => run on loop device"
- mount_loop_device
+ cd "$TST_MNTPOINT"
fi
[ -n "$TST_SETUP_CALLER" ] && $TST_SETUP_CALLER
@@ -200,11 +192,6 @@ ima_cleanup()
for dir in $UMOUNT; do
umount $dir
done
-
- if [ "$TST_NEEDS_DEVICE" = 1 ]; then
- cd $TST_TMPDIR
- tst_umount
- fi
}
set_digest_index()
@@ -348,10 +335,10 @@ require_evmctl()
fi
}
-. tst_test.sh
-
# loop device is needed to use only for tmpfs
TMPDIR="${TMPDIR:-/tmp}"
-if [ "$(df -T $TMPDIR | tail -1 | awk '{print $2}')" != "tmpfs" -a -n "$TST_NEEDS_DEVICE" ]; then
- unset TST_NEEDS_DEVICE
+if [ "$(df -T $TMPDIR | tail -1 | awk '{print $2}')" != "tmpfs" -a -n "$TST_MOUNT_DEVICE" ]; then
+ unset TST_MOUNT_DEVICE
fi
+
+. tst_test.sh
--
2.37.3
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 11+ messages in thread* [LTP] [PATCH 3/3] ima_setup.sh: Use tst_supported_fs instead of df
2022-09-23 10:55 [LTP] [PATCH 0/3] IMA + shell API fixes on umount Petr Vorel
2022-09-23 10:55 ` [LTP] [PATCH 1/3] tst_test.sh: cd to $LTPROOT before umount Petr Vorel
2022-09-23 10:55 ` [LTP] [PATCH 2/3] ima_setup.sh: Use TST_MOUNT_DEVICE Petr Vorel
@ 2022-09-23 10:55 ` Petr Vorel
2022-09-23 12:21 ` Cyril Hrubis
2 siblings, 1 reply; 11+ messages in thread
From: Petr Vorel @ 2022-09-23 10:55 UTC (permalink / raw)
To: ltp
LTP prefers it's helpers instead of external dependency
(be friendly for embedded or other minimal environments).
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
testcases/kernel/security/integrity/ima/tests/ima_setup.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/testcases/kernel/security/integrity/ima/tests/ima_setup.sh b/testcases/kernel/security/integrity/ima/tests/ima_setup.sh
index 055701aff..df3fc5603 100644
--- a/testcases/kernel/security/integrity/ima/tests/ima_setup.sh
+++ b/testcases/kernel/security/integrity/ima/tests/ima_setup.sh
@@ -337,7 +337,7 @@ require_evmctl()
# loop device is needed to use only for tmpfs
TMPDIR="${TMPDIR:-/tmp}"
-if [ "$(df -T $TMPDIR | tail -1 | awk '{print $2}')" != "tmpfs" -a -n "$TST_MOUNT_DEVICE" ]; then
+if tst_supported_fs -d $TMPDIR -s "tmpfs"; then
unset TST_MOUNT_DEVICE
fi
--
2.37.3
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [LTP] [PATCH 3/3] ima_setup.sh: Use tst_supported_fs instead of df
2022-09-23 10:55 ` [LTP] [PATCH 3/3] ima_setup.sh: Use tst_supported_fs instead of df Petr Vorel
@ 2022-09-23 12:21 ` Cyril Hrubis
2022-09-26 9:52 ` [LTP] " Petr Vorel
0 siblings, 1 reply; 11+ messages in thread
From: Cyril Hrubis @ 2022-09-23 12:21 UTC (permalink / raw)
To: Petr Vorel; +Cc: ltp
Hi!
Reviewed-by: Cyril Hrubis <chrubis@suse.cz>
--
Cyril Hrubis
chrubis@suse.cz
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 3/3] ima_setup.sh: Use tst_supported_fs instead of df
2022-09-23 12:21 ` Cyril Hrubis
@ 2022-09-26 9:52 ` Petr Vorel
0 siblings, 0 replies; 11+ messages in thread
From: Petr Vorel @ 2022-09-26 9:52 UTC (permalink / raw)
To: Cyril Hrubis; +Cc: ltp, Mimi Zohar, Li Wang, Martin Doucha, linux-integrity
Hi all,
[ Cc linux-integrity ML ]
Cyril, thanks a lot for your review, patchset merged.
@linux-integrity Last 7 fixes made IMA working on my setup, if anything broken
please speak up, so that we can fix it before LTP release (git freeze is going
to be very soon, likely this week).
Kind regards,
Petr
^ permalink raw reply [flat|nested] 11+ messages in thread