diff --git a/test/units/TEST-74-AUX-UTILS.mount.sh b/test/units/TEST-74-AUX-UTILS.mount.sh index ecfdb0640f..85539452a0 100755 --- a/test/units/TEST-74-AUX-UTILS.mount.sh +++ b/test/units/TEST-74-AUX-UTILS.mount.sh @@ -39,3 +39,21 @@ systemd-mount --type=overlay --options="lowerdir=/etc,upperdir=$WORK_DIR/upper,w touch "$WORK_DIR/overlay/foo" test -e "$WORK_DIR/upper/foo" systemd-umount "$WORK_DIR/overlay" + +# Validate that we cannot mount through a symlink or .. +mkdir "$WORK_DIR"/flurb +ln -s flurb "$WORK_DIR"/knarb +systemd-mount --canonicalize=no --tmpfs "$WORK_DIR"/flurb/shlum +systemd-umount "$WORK_DIR/"/flurb/shlum +(! systemd-mount --canonicalize=no --tmpfs "$WORK_DIR"/knarb/shlum) +systemd-mount --canonicalize=yes --tmpfs "$WORK_DIR"/knarb/shlum +systemd-umount "$WORK_DIR/"/flurb/shlum +(! systemd-mount --canonicalize=no --tmpfs "$WORK_DIR"/flurb/../flurb/shlum) +systemd-mount --canonicalize=yes --tmpfs "$WORK_DIR"/flurb/../flurb/shlum +systemd-umount "$WORK_DIR/"/flurb/shlum + +# Validate that we can correctly create dir and reg files inodes if needed +systemd-mount --tmpfs "$WORK_DIR"/flurb/shlum/some/more/dirs +systemd-umount "$WORK_DIR/"/flurb/shlum/some/more/dirs +systemd-mount /bin/ls "$WORK_DIR"/flurb/shlum/some/more/dirs/file -o bind +systemd-umount "$WORK_DIR/"/flurb/shlum/some/more/dirs/file