hackedteam/core-android-native

View on GitHub
selinux_native/jni/libsepol/src/polcaps.c

Summary

Maintainability
Test Coverage
/*
 * Policy capability support functions
 */

#include <string.h>
#include <sepol/policydb/polcaps.h>

static const char *polcap_names[] = {
    "network_peer_controls",    /* POLICYDB_CAPABILITY_NETPEER */
    "open_perms",            /* POLICYDB_CAPABILITY_OPENPERM */
    "redhat1",            /* POLICYDB_CAPABILITY_REDHAT1, aka ptrace_child */
    "always_check_network",        /* POLICYDB_CAPABILITY_ALWAYSNETWORK */
    NULL
};

int sepol_polcap_getnum(const char *name)
{
    int capnum;

    for (capnum = 0; capnum <= POLICYDB_CAPABILITY_MAX; capnum++) {
        if (polcap_names[capnum] == NULL)
            continue;
        if (strcasecmp(polcap_names[capnum], name) == 0)
            return capnum;
    }
    return -1;
}

const char *sepol_polcap_getname(int capnum)
{
    if (capnum > POLICYDB_CAPABILITY_MAX)
        return NULL;

    return polcap_names[capnum];
}