Merge "Avoid two SELinux related error messages at boot time" into main am: 87d6c8a1d5

Original change: https://android-review.googlesource.com/c/platform/system/core/+/2705761

Change-Id: Idf86e98032d8f8a759ecab79e8da163d4bc52f56
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Eric Biggers 2023-08-14 18:18:13 +00:00 committed by Automerger Merge Worker
commit 5236858bf8

View file

@ -735,6 +735,14 @@ void SelinuxAvcLog(char* buf) {
TEMP_FAILURE_RETRY(send(fd.get(), &request, sizeof(request), 0));
}
int RestoreconIfExists(const char* path, unsigned int flags) {
if (access(path, F_OK) != 0 && errno == ENOENT) {
// Avoid error message for path that is expected to not always exist.
return 0;
}
return selinux_android_restorecon(path, flags);
}
} // namespace
void SelinuxRestoreContext() {
@ -762,9 +770,9 @@ void SelinuxRestoreContext() {
// adb remount, snapshot-based updates, and DSUs all create files during
// first-stage init.
selinux_android_restorecon(SnapshotManager::GetGlobalRollbackIndicatorPath().c_str(), 0);
selinux_android_restorecon("/metadata/gsi", SELINUX_ANDROID_RESTORECON_RECURSE |
SELINUX_ANDROID_RESTORECON_SKIP_SEHASH);
RestoreconIfExists(SnapshotManager::GetGlobalRollbackIndicatorPath().c_str(), 0);
RestoreconIfExists("/metadata/gsi",
SELINUX_ANDROID_RESTORECON_RECURSE | SELINUX_ANDROID_RESTORECON_SKIP_SEHASH);
}
int SelinuxKlogCallback(int type, const char* fmt, ...) {