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

Commit 4ef159a3 authored by Nick Kralevich's avatar Nick Kralevich Committed by Android Git Automerger
Browse files

am 7367ecbc: am 06023134: am 8022ce1e: Merge "ueventd fixup_sys_perms: fixup...

am 7367ecbc: am 06023134: am 8022ce1e: Merge "ueventd fixup_sys_perms: fixup SELinux labels unconditionally"

* commit '7367ecbc':
  ueventd fixup_sys_perms: fixup SELinux labels unconditionally
parents 7df14ef3 7367ecbc
Loading
Loading
Loading
Loading
+15 −13
Original line number Diff line number Diff line
@@ -134,7 +134,6 @@ void fixup_sys_perms(const char *upath)
    char buf[512];
    struct listnode *node;
    struct perms_ *dp;
    char *secontext;

    /* upaths omit the "/sys" that paths in this list
     * contain, so we add 4 when comparing...
@@ -153,20 +152,23 @@ void fixup_sys_perms(const char *upath)
        }

        if ((strlen(upath) + strlen(dp->attr) + 6) > sizeof(buf))
            return;
            break;

        sprintf(buf,"/sys%s/%s", upath, dp->attr);
        INFO("fixup %s %d %d 0%o\n", buf, dp->uid, dp->gid, dp->perm);
        chown(buf, dp->uid, dp->gid);
        chmod(buf, dp->perm);
        if (sehandle) {
            secontext = NULL;
            selabel_lookup(sehandle, &secontext, buf, 0);
            if (secontext) {
                setfilecon(buf, secontext);
                freecon(secontext);
    }

    // Now fixup SELinux file labels
    int len = snprintf(buf, sizeof(buf), "/sys%s", upath);
    if ((len < 0) || ((size_t) len >= sizeof(buf))) {
        // Overflow
        return;
    }
    if (access(buf, F_OK) == 0) {
        INFO("restorecon_recursive: %s\n", buf);
        restorecon_recursive(buf);
    }
}