Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 78746826 authored by William Roberts's avatar William Roberts Committed by android-build-merger
Browse files

Merge \\"ueventd: only relabel devices if there\\'s a delta\\" am: 95428817

am: 807fa4bd

Change-Id: I41a8c02332ae12dc1c4fbc9c45ee627a37ce6b77
parents e1d64b4e 807fa4bd
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -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);