diff options
author | Songchun Fan <schfan@google.com> | 2020-07-15 16:48:58 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-07-15 16:48:58 +0000 |
commit | 6c1d6414fd3b155cd2be344693f61f414bff20ea (patch) | |
tree | 90de8044e76b3eae64feb7059eee0b2dbe864b69 | |
parent | 022f826a16b73d597a6ce41524d48fb258e3e2fc (diff) | |
parent | 4a18a60a500ba27137c775f7bd0699b674c6cf98 (diff) | |
download | incremental_delivery-6c1d6414fd3b155cd2be344693f61f414bff20ea.tar.gz |
[incfs] call restorecon on individual control files am: 4a18a60a50android-mainline-11.0.0_r44android-mainline-11.0.0_r43android-mainline-11.0.0_r42android-mainline-11.0.0_r41android-mainline-11.0.0_r40android-mainline-11.0.0_r39android-mainline-11.0.0_r38android-mainline-11.0.0_r37android-mainline-11.0.0_r36android-mainline-11.0.0_r35android-mainline-11.0.0_r34android-mainline-11.0.0_r32android-mainline-11.0.0_r31android-mainline-11.0.0_r30android-mainline-11.0.0_r28android-mainline-11.0.0_r27android-mainline-11.0.0_r26android-mainline-11.0.0_r25android-mainline-11.0.0_r24android-mainline-11.0.0_r23android-mainline-11.0.0_r22android-mainline-11.0.0_r21android-mainline-11.0.0_r20android-mainline-11.0.0_r18android-mainline-11.0.0_r17android-mainline-11.0.0_r16android-mainline-11.0.0_r15android-mainline-11.0.0_r14android-mainline-11.0.0_r13android-mainline-11.0.0_r12android11-mainline-tethering-releaseandroid11-mainline-permission-releaseandroid11-mainline-os-statsd-releaseandroid11-mainline-networkstack-releaseandroid11-mainline-media-swcodec-releaseandroid11-mainline-media-releaseandroid11-mainline-extservices-releaseandroid11-mainline-documentsui-releaseandroid11-mainline-conscrypt-releaseandroid11-mainline-cellbroadcast-releaseandroid11-mainline-captiveportallogin-release
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/incremental_delivery/+/12142921
Change-Id: I3cdc98f47f991db726bfa5085dd90d3c1d31206a
-rw-r--r-- | incfs/incfs.cpp | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/incfs/incfs.cpp b/incfs/incfs.cpp index c98acb2..7994c54 100644 --- a/incfs/incfs.cpp +++ b/incfs/incfs.cpp @@ -403,6 +403,22 @@ IncFsFileId IncFs_FileIdFromMetadata(IncFsSpan metadata) { return id; } +static bool restoreconControlFiles(std::string_view targetDir) { + const std::string controlFilePaths[] = {path::join(targetDir, INCFS_PENDING_READS_FILENAME), + path::join(targetDir, INCFS_LOG_FILENAME)}; + for (size_t i = 0; i < std::size(controlFilePaths); i++) { + if (const auto err = selinux_android_restorecon(controlFilePaths[i].c_str(), + SELINUX_ANDROID_RESTORECON_FORCE); + err != 0) { + PLOG(ERROR) << "[incfs] Failed to restorecon: " << controlFilePaths[i] + << " error code: " << err; + errno = -err; + return false; + } + } + return true; +} + IncFsControl* IncFs_Mount(const char* backingPath, const char* targetDir, IncFsMountOptions options) { if (!init().enabledAndReady()) { @@ -440,10 +456,7 @@ IncFsControl* IncFs_Mount(const char* backingPath, const char* targetDir, return nullptr; } - if (const auto err = selinux_android_restorecon(targetDir, SELINUX_ANDROID_RESTORECON_RECURSE); - err != 0) { - PLOG(ERROR) << "[incfs] Failed to restorecon: " << err; - errno = -err; + if (!restoreconControlFiles(targetDir)) { return nullptr; } |