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>
This commit is contained in:
sagivd 2018-08-25 13:49:24 +03:00 committed by Denys Vlasenko
parent 28d91d754e
commit 8f1ae25634

View File

@ -131,8 +131,10 @@ static int FAST_FUNC change_filedir_context(
bb_error_msg("can't change context of %s to %s", bb_error_msg("can't change context of %s to %s",
fname, context_string); fname, context_string);
} }
} else if (option_mask32 & OPT_VERBOSE) { } else {
if (option_mask32 & OPT_VERBOSE) {
printf("context of %s retained as %s\n", fname, context_string); printf("context of %s retained as %s\n", fname, context_string);
}
rc = TRUE; rc = TRUE;
} }
skip: skip:
@ -202,7 +204,7 @@ int chcon_main(int argc UNUSED_PARAM, char **argv)
fname[fname_len] = '\0'; fname[fname_len] = '\0';
if (recursive_action(fname, if (recursive_action(fname,
1<<option_mask32 & OPT_RECURSIVE, ((option_mask32 & OPT_RECURSIVE) ? ACTION_RECURSIVE : 0),
change_filedir_context, change_filedir_context,
change_filedir_context, change_filedir_context,
NULL, 0) != TRUE) NULL, 0) != TRUE)