diff --git a/src/uucore/src/lib/features/selinux.rs b/src/uucore/src/lib/features/selinux.rs index eb14eb816..7d7fa98eb 100644 --- a/src/uucore/src/lib/features/selinux.rs +++ b/src/uucore/src/lib/features/selinux.rs @@ -19,8 +19,8 @@ pub enum SeLinuxError { #[error("Failed to retrieve the security context")] ContextRetrievalFailure, - #[error("Failed to set the security context")] - ContextSetFailure, + #[error("failed to set default file creation context to {0}")] + ContextSetFailure(String), #[error("Invalid context string or conversion failure")] ContextConversionFailure, @@ -32,7 +32,7 @@ impl From for i32 { SeLinuxError::SELinuxNotEnabled => 1, SeLinuxError::FileOpenFailure => 2, SeLinuxError::ContextRetrievalFailure => 3, - SeLinuxError::ContextSetFailure => 4, + SeLinuxError::ContextSetFailure(_) => 4, SeLinuxError::ContextConversionFailure => 5, } } @@ -113,10 +113,11 @@ pub fn set_selinux_security_context( false, ) .set_for_path(path, false, false) - .map_err(|_| SeLinuxError::ContextSetFailure) + .map_err(|_| SeLinuxError::ContextSetFailure(ctx_str.to_string())) } else { // If no context provided, set the default SELinux context for the path - SecurityContext::set_default_for_path(path).map_err(|_| SeLinuxError::ContextSetFailure) + SecurityContext::set_default_for_path(path) + .map_err(|_| SeLinuxError::ContextSetFailure("".to_string())) } } diff --git a/tests/by-util/test_mkfifo.rs b/tests/by-util/test_mkfifo.rs index c9c62b41f..721b559ae 100644 --- a/tests/by-util/test_mkfifo.rs +++ b/tests/by-util/test_mkfifo.rs @@ -160,7 +160,7 @@ fn test_mkfifo_selinux_invalid() { .arg(arg) .arg(dest) .fails() - .stderr_contains("Failed to"); + .stderr_contains("failed to"); if at.file_exists(dest) { at.remove(dest); } diff --git a/tests/by-util/test_mknod.rs b/tests/by-util/test_mknod.rs index 6d393c2f6..daefe6cda 100644 --- a/tests/by-util/test_mknod.rs +++ b/tests/by-util/test_mknod.rs @@ -187,7 +187,7 @@ fn test_mknod_selinux_invalid() { .arg(dest) .arg("p") .fails() - .stderr_contains("Failed to"); + .stderr_contains("failed to"); if at.file_exists(dest) { at.remove(dest); }