libselinux: selinux_restorecon: only log no default label warning if recursive

In commit 36f1ccbb57 ("policycoreutils: setfiles: print error if
no default label found"), a warning message was added to setfiles/restorecon
if the user explicitly does a restorecon /path/to/foo and
/path/to/foo does not have any matching label in file_contexts; in the
case of a restorecon -R or setfiles, the warning isn't supposed to be
logged.  The check on the recursive flag got dropped when this logic was
taken into selinux_restorecon(3) in libselinux.  Restore this check so
that we do not generate noisy log messages on restorecon -R or setfiles.

Reported-by: Alan Jenkins <alan.christopher.jenkins@gmail.com>
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
This commit is contained in:
Stephen Smalley 2017-01-13 09:51:48 -05:00
parent 0e67689d52
commit d66c54e2e2

View File

@ -613,7 +613,7 @@ static int restorecon_sb(const char *pathname, const struct stat *sb,
sb->st_mode);
if (rc < 0) {
if (errno == ENOENT && flags->verbose)
if (errno == ENOENT && flags->verbose && !flags->recurse)
selinux_log(SELINUX_INFO,
"Warning no default label for %s\n",
lookup_path);