From 8a86223d45be7597b229a95381aebab3512bf6d7 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Wed, 31 Jan 2007 23:01:50 +0100 Subject: * tests/cp/cp-a-selinux: New file. Test for the bug reported in * tests/cp/Makefile.am (TESTS): Add cp-a-selinux. * tests/selinux: New file. * tests/Makefile.am (EXTRA_DIST): Add selinux. * tests/misc/selinux: Source the new script, rather than open coding it. Change how "cp -a" and "cp --preserve=context" work with SELinux. Now, cp -a attempts to preserve context, but failure to do so does not change cp's exit status. However "cp --preserve=context" is similar, but failure *does* cause cp to exit with nonzero status. * src/copy.h (struct cp_options) [require_preserve_context]: New member. * src/copy.c (copy_reg, copy_internal): Implement the above. * src/mv.c (cp_option_init): Initialize the new member. * src/install.c (cp_option_init): Likewise. * src/cp.c (cp_option_init): Likewise. (decode_preserve_arg): Set it or reset it. FIXME: add an on-writable-NFS-only test --- src/mv.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src/mv.c') diff --git a/src/mv.c b/src/mv.c index 90387f79b..5ffe2ae23 100644 --- a/src/mv.c +++ b/src/mv.c @@ -131,6 +131,7 @@ cp_option_init (struct cp_options *x) x->preserve_timestamps = true; x->preserve_security_context = selinux_enabled; x->require_preserve = false; /* FIXME: maybe make this an option */ + x->require_preserve_context = false; x->recursive = true; x->sparse_mode = SPARSE_AUTO; /* FIXME: maybe make this an option */ x->symbolic_link = false; -- cgit v1.2.3-54-g00ecf