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

Commit eb3f421e authored by Stephen Smalley's avatar Stephen Smalley
Browse files

Enable building init with -Wall -Werror.



Eliminates various warnings from SELinux-related code.

Bug: 12587913
Change-Id: I28921f0ebd934324436609540d95ccef58552b64
Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
parent 27fd413d
Loading
Loading
Loading
Loading
+13 −5
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@
#define _CUTILS_KLOG_H_

#include <sys/cdefs.h>
#include <stdarg.h>

__BEGIN_DECLS

@@ -26,14 +27,21 @@ void klog_set_level(int level);
void klog_close(void);
void klog_write(int level, const char *fmt, ...)
    __attribute__ ((format(printf, 2, 3)));
void klog_vwrite(int level, const char *fmt, va_list ap);

__END_DECLS

#define KLOG_ERROR(tag,x...)   klog_write(3, "<3>" tag ": " x)
#define KLOG_WARNING(tag,x...) klog_write(4, "<4>" tag ": " x)
#define KLOG_NOTICE(tag,x...)  klog_write(5, "<5>" tag ": " x)
#define KLOG_INFO(tag,x...)    klog_write(6, "<6>" tag ": " x)
#define KLOG_DEBUG(tag,x...)   klog_write(7, "<7>" tag ": " x)
#define KLOG_ERROR_LEVEL   3
#define KLOG_WARNING_LEVEL 4
#define KLOG_NOTICE_LEVEL  5
#define KLOG_INFO_LEVEL    6
#define KLOG_DEBUG_LEVEL   7

#define KLOG_ERROR(tag,x...)   klog_write(KLOG_ERROR_LEVEL, "<3>" tag ": " x)
#define KLOG_WARNING(tag,x...) klog_write(KLOG_WARNING_LEVEL, "<4>" tag ": " x)
#define KLOG_NOTICE(tag,x...)  klog_write(KLOG_NOTICE_LEVEL, "<5>" tag ": " x)
#define KLOG_INFO(tag,x...)    klog_write(KLOG_INFO_LEVEL, "<6>" tag ": " x)
#define KLOG_DEBUG(tag,x...)   klog_write(KLOG_DEBUG_LEVEL, "<7>" tag ": " x)

#define KLOG_DEFAULT_LEVEL  3  /* messages <= this level are logged */

+23 −2
Original line number Diff line number Diff line
@@ -934,12 +934,33 @@ int selinux_reload_policy(void)
    return 0;
}

int audit_callback(void *data, security_class_t cls, char *buf, size_t len)
static int audit_callback(void *data, security_class_t cls __attribute__((unused)), char *buf, size_t len)
{
    snprintf(buf, len, "property=%s", !data ? "NULL" : (char *)data);
    return 0;
}

static int log_callback(int type, const char *fmt, ...)
{
    int level;
    va_list ap;
    switch (type) {
    case SELINUX_WARNING:
        level = KLOG_WARNING_LEVEL;
        break;
    case SELINUX_INFO:
        level = KLOG_INFO_LEVEL;
        break;
    default:
        level = KLOG_ERROR_LEVEL;
        break;
    }
    va_start(ap, fmt);
    klog_vwrite(level, fmt, ap);
    va_end(ap);
    return 0;
}

static void selinux_initialize(void)
{
    if (selinux_is_disabled()) {
@@ -1013,7 +1034,7 @@ int main(int argc, char **argv)
    process_kernel_cmdline();

    union selinux_callback cb;
    cb.func_log = klog_write;
    cb.func_log = log_callback;
    selinux_set_callback(SELINUX_CB_LOG, cb);

    cb.func_audit = audit_callback;
+10 −4
Original line number Diff line number Diff line
@@ -49,18 +49,24 @@ void klog_init(void)

#define LOG_BUF_MAX 512

void klog_write(int level, const char *fmt, ...)
void klog_vwrite(int level, const char *fmt, va_list ap)
{
    char buf[LOG_BUF_MAX];
    va_list ap;

    if (level > klog_level) return;
    if (klog_fd < 0) klog_init();
    if (klog_fd < 0) return;

    va_start(ap, fmt);
    vsnprintf(buf, LOG_BUF_MAX, fmt, ap);
    buf[LOG_BUF_MAX - 1] = 0;
    va_end(ap);

    write(klog_fd, buf, strlen(buf));
}

void klog_write(int level, const char *fmt, ...)
{
    va_list ap;
    va_start(ap, fmt);
    klog_vwrite(level, fmt, ap);
    va_end(ap);
}