aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsagivd <sagivdev@gmail.com>2018-08-25 13:49:24 +0300
committerDenys Vlasenko <vda.linux@googlemail.com>2018-09-03 16:02:26 +0200
commit8f1ae256347b32057d32846f915f53f9106f00bc (patch)
treea112d725ec71d7d892b333c69b4dbae457674cc4
parent28d91d754e423fd0df584bbfa9b903eacac21224 (diff)
downloadbusybox-w32-8f1ae256347b32057d32846f915f53f9106f00bc.tar.gz
busybox-w32-8f1ae256347b32057d32846f915f53f9106f00bc.tar.bz2
busybox-w32-8f1ae256347b32057d32846f915f53f9106f00bc.zip
chcon: fix issues with recurse and retval for retained files
- recurse is not acting as expected (looks like broken old code) - when not using verbose output, return value for retained files is 1, which is not expected. Signed-off-by: sagivd <sagivdev@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--selinux/chcon.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/selinux/chcon.c b/selinux/chcon.c
index 3ddb2dd46..92eb76737 100644
--- a/selinux/chcon.c
+++ b/selinux/chcon.c
@@ -131,8 +131,10 @@ static int FAST_FUNC change_filedir_context(
131 bb_error_msg("can't change context of %s to %s", 131 bb_error_msg("can't change context of %s to %s",
132 fname, context_string); 132 fname, context_string);
133 } 133 }
134 } else if (option_mask32 & OPT_VERBOSE) { 134 } else {
135 printf("context of %s retained as %s\n", fname, context_string); 135 if (option_mask32 & OPT_VERBOSE) {
136 printf("context of %s retained as %s\n", fname, context_string);
137 }
136 rc = TRUE; 138 rc = TRUE;
137 } 139 }
138skip: 140skip:
@@ -202,7 +204,7 @@ int chcon_main(int argc UNUSED_PARAM, char **argv)
202 fname[fname_len] = '\0'; 204 fname[fname_len] = '\0';
203 205
204 if (recursive_action(fname, 206 if (recursive_action(fname,
205 1<<option_mask32 & OPT_RECURSIVE, 207 ((option_mask32 & OPT_RECURSIVE) ? ACTION_RECURSIVE : 0),
206 change_filedir_context, 208 change_filedir_context,
207 change_filedir_context, 209 change_filedir_context,
208 NULL, 0) != TRUE) 210 NULL, 0) != TRUE)