diff options
author | sagivd <sagivdev@gmail.com> | 2018-08-25 13:49:24 +0300 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2018-09-03 16:02:26 +0200 |
commit | 8f1ae256347b32057d32846f915f53f9106f00bc (patch) | |
tree | a112d725ec71d7d892b333c69b4dbae457674cc4 | |
parent | 28d91d754e423fd0df584bbfa9b903eacac21224 (diff) |
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.c | 8 |
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( bb_error_msg("can't change context of %s to %s", fname, context_string); } - } else if (option_mask32 & OPT_VERBOSE) { - printf("context of %s retained as %s\n", fname, context_string); + } else { + if (option_mask32 & OPT_VERBOSE) { + printf("context of %s retained as %s\n", fname, context_string); + } rc = TRUE; } skip: @@ -202,7 +204,7 @@ int chcon_main(int argc UNUSED_PARAM, char **argv) fname[fname_len] = '\0'; if (recursive_action(fname, - 1<<option_mask32 & OPT_RECURSIVE, + ((option_mask32 & OPT_RECURSIVE) ? ACTION_RECURSIVE : 0), change_filedir_context, change_filedir_context, NULL, 0) != TRUE) |