Merge \\"ueventd: only relabel devices if there\\'s a delta\\" am: 95428817d6
am: 807fa4bd5c
Change-Id: I41a8c02332ae12dc1c4fbc9c45ee627a37ce6b77
This commit is contained in:
commit
787468260d
|
@ -257,11 +257,25 @@ static void make_device(const char *path,
|
|||
/* If the node already exists update its SELinux label to handle cases when
|
||||
* it was created with the wrong context during coldboot procedure. */
|
||||
if (mknod(path, mode, dev) && (errno == EEXIST)) {
|
||||
if (lsetfilecon(path, secontext)) {
|
||||
|
||||
char* fcon = nullptr;
|
||||
int rc = lgetfilecon(path, &fcon);
|
||||
if (rc < 0) {
|
||||
ERROR("Cannot get SELinux label on '%s' device (%s)\n",
|
||||
path, strerror(errno));
|
||||
goto out;
|
||||
}
|
||||
|
||||
bool different = strcmp(fcon, secontext) != 0;
|
||||
freecon(fcon);
|
||||
|
||||
if (different && lsetfilecon(path, secontext)) {
|
||||
ERROR("Cannot set '%s' SELinux label on '%s' device (%s)\n",
|
||||
secontext, path, strerror(errno));
|
||||
}
|
||||
}
|
||||
|
||||
out:
|
||||
chown(path, uid, -1);
|
||||
setegid(AID_ROOT);
|
||||
|
||||
|
|
Loading…
Reference in New Issue