Merge "Chmod for existing nodes which mode not the same as ueventd.rc" am: a50d431830
am: 79c6750b85
Original change: https://android-review.googlesource.com/c/platform/system/core/+/2063313 Change-Id: Ie057274f2586cb6d2dcbe0a7e5a04d70764c0c70 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
commit
42ffffd8a1
1 changed files with 7 additions and 2 deletions
|
@ -307,8 +307,8 @@ void DeviceHandler::MakeDevice(const std::string& path, bool block, int major, i
|
|||
PLOG(ERROR) << "setegid(" << gid << ") for " << path << " device failed";
|
||||
goto out;
|
||||
}
|
||||
/* If the node already exists update its SELinux label to handle cases when
|
||||
* it was created with the wrong context during coldboot procedure. */
|
||||
/* If the node already exists update its SELinux label and the file mode to handle cases when
|
||||
* it was created with the wrong context and file mode during coldboot procedure. */
|
||||
if (mknod(path.c_str(), mode, dev) && (errno == EEXIST) && !secontext.empty()) {
|
||||
char* fcon = nullptr;
|
||||
int rc = lgetfilecon(path.c_str(), &fcon);
|
||||
|
@ -330,6 +330,11 @@ void DeviceHandler::MakeDevice(const std::string& path, bool block, int major, i
|
|||
if (gid != s.st_gid) {
|
||||
new_group = gid;
|
||||
}
|
||||
if (mode != s.st_mode) {
|
||||
if (chmod(path.c_str(), mode) != 0) {
|
||||
PLOG(ERROR) << "Cannot chmod " << path << " to " << mode;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
PLOG(ERROR) << "Cannot stat " << path;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue