diff options
author | Denis Vlasenko | 2007-03-10 16:58:49 +0000 |
---|---|---|
committer | Denis Vlasenko | 2007-03-10 16:58:49 +0000 |
commit | 49622d784672bf2f7b2fe80589714cdef5adde0c (patch) | |
tree | 892bb79b0ef031d729e688d6be4950f6d17f13b9 /coreutils/mv.c | |
parent | 4eb8b936cb0aeb27c3e12f9a93fc43aa1e9668f5 (diff) | |
download | busybox-49622d784672bf2f7b2fe80589714cdef5adde0c.zip busybox-49622d784672bf2f7b2fe80589714cdef5adde0c.tar.gz |
selinux support by Yuichi Nakamura <ynakam@hitachisoft.jp> (HitachiSoft)
Diffstat (limited to 'coreutils/mv.c')
-rw-r--r-- | coreutils/mv.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/coreutils/mv.c b/coreutils/mv.c index 7d4905f..64cae96 100644 --- a/coreutils/mv.c +++ b/coreutils/mv.c @@ -3,6 +3,7 @@ * Mini mv implementation for busybox * * Copyright (C) 2000 by Matt Kraai <kraai@alumni.carnegiemellon.edu> + * SELinux support by Yuichi Nakamura <ynakam@hitachisoft.jp> * * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. */ @@ -44,6 +45,7 @@ int mv_main(int argc, char **argv) unsigned long flags; int dest_exists; int status = 0; + int copy_flag = 0; #if ENABLE_FEATURE_MV_LONG_OPTIONS applet_long_options = mv_long_options; @@ -113,8 +115,11 @@ DO_MOVE: goto RET_1; } } - if ((copy_file(*argv, dest, - FILEUTILS_RECUR | FILEUTILS_PRESERVE_STATUS) >= 0) && + copy_flag = FILEUTILS_RECUR | FILEUTILS_PRESERVE_STATUS; +#if ENABLE_SELINUX + copy_flag |= FILEUTILS_PRESERVE_SECURITY_CONTEXT; +#endif + if ((copy_file(*argv, dest, copy_flag) >= 0) && (remove_file(*argv, FILEUTILS_RECUR | FILEUTILS_FORCE) >= 0)) { goto RET_0; } |