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

Commit bc1d2aef authored by Mark Salyzyn's avatar Mark Salyzyn
Browse files

logd: test: logd.sepolicy* errors

If setcon fails, try alternate setcon, and then if it still
fails call getcon to confirm if it is an OK sepolicy context
anyways.

Test: gTest logd-unit-tests --gtest_filter=logd.sepolicy*
Change-Id: Iaf20b8a1a4a7312247288e1879884a54893c15ae
parent 3d5cd59d
Loading
Loading
Loading
Loading
+9 −7
Original line number Diff line number Diff line
@@ -999,17 +999,19 @@ static pid_t sepolicy_rate(unsigned rate, unsigned num) {
    }

    // We may have DAC, but let's not have MAC
    if (setcon("u:object_r:shell:s0") < 0) {
    if ((setcon("u:object_r:shell:s0") < 0) && (setcon("u:r:shell:s0") < 0)) {
        int save_errno = errno;
        security_context_t context;
        getcon(&context);
        fprintf(stderr, "setcon(\"u:r:shell:s0\") failed @\"%s\" %s\n", context,
                strerror(save_errno));
        if (strcmp(context, "u:r:shell:s0")) {
            fprintf(stderr, "setcon(\"u:r:shell:s0\") failed @\"%s\" %s\n",
                    context, strerror(save_errno));
            freecon(context);
            _exit(-1);
            // NOTREACHED
            return 0;
        }
    }

    // The key here is we are root, but we are in u:r:shell:s0,
    // and the directory does not provide us DAC access