static void systemd_kmod_log(void *data, int priority, const char *file, int line, const char *fn, const char *format, va_list args) { DISABLE_WARNING_FORMAT_NONLITERAL; log_internalv(priority, 0, file, line, fn, format, args); REENABLE_WARNING; }
/* libselinux uses this callback when access gets denied or other events happen. If audit is turned on, messages will be reported using audit netlink, otherwise they will be logged using the usual channels. Code copied from dbus and modified. */ _printf_(2, 3) static int log_callback(int type, const char *fmt, ...) { va_list ap; #ifdef HAVE_AUDIT int fd; fd = get_audit_fd(); if (fd >= 0) { _cleanup_free_ char *buf = NULL; int r; va_start(ap, fmt); r = vasprintf(&buf, fmt, ap); va_end(ap); if (r >= 0) { audit_log_user_avc_message(fd, AUDIT_USER_AVC, buf, NULL, NULL, NULL, 0); return 0; } } #endif va_start(ap, fmt); log_internalv(LOG_AUTH | callback_type_to_priority(type), 0, __FILE__, __LINE__, __FUNCTION__, fmt, ap); va_end(ap); return 0; }
void microhttpd_logger(void *arg, const char *fmt, va_list ap) { char *f; f = strappenda("microhttpd: ", fmt); DISABLE_WARNING_FORMAT_NONLITERAL; log_internalv(LOG_INFO, 0, NULL, 0, NULL, f, ap); REENABLE_WARNING; }
static void systemd_kmod_log( void *data, int priority, const char *file, int line, const char *fn, const char *format, va_list args) { /* library logging is enabled at debug only */ DISABLE_WARNING_FORMAT_NONLITERAL; log_internalv(LOG_DEBUG, 0, file, line, fn, format, args); REENABLE_WARNING; }
int log_internal( int level, int error, const char *file, int line, const char *func, const char *format, ...) { va_list ap; int r; va_start(ap, format); r = log_internalv(level, error, file, line, func, format, ap); va_end(ap); return r; }
static void kbdctx_log_fn(struct xkb_context *ctx, enum xkb_log_level lvl, const char *format, va_list args) { char buf[LINE_MAX]; int sd_lvl; if (lvl >= XKB_LOG_LEVEL_DEBUG) sd_lvl = LOG_DEBUG; else if (lvl >= XKB_LOG_LEVEL_INFO) sd_lvl = LOG_INFO; else if (lvl >= XKB_LOG_LEVEL_WARNING) sd_lvl = LOG_INFO; /* most XKB warnings really are informational */ else /* XKB_LOG_LEVEL_ERROR and worse */ sd_lvl = LOG_ERR; snprintf(buf, sizeof(buf), "idev-xkb: %s", format); log_internalv(sd_lvl, 0, __FILE__, __LINE__, __func__, buf, args); }
/* libselinux uses this callback when access gets denied or other events happen. If audit is turned on, messages will be reported using audit netlink, otherwise they will be logged using the usual channels. Code copied from dbus and modified. */ _printf_(2, 3) static int log_callback(int type, const char *fmt, ...) { va_list ap; const char *fmt2; #if HAVE_AUDIT int fd; fd = get_audit_fd(); if (fd >= 0) { _cleanup_free_ char *buf = NULL; int r; va_start(ap, fmt); r = vasprintf(&buf, fmt, ap); va_end(ap); if (r >= 0) { if (type == SELINUX_AVC) audit_log_user_avc_message(get_audit_fd(), AUDIT_USER_AVC, buf, NULL, NULL, NULL, 0); else if (type == SELINUX_ERROR) audit_log_user_avc_message(get_audit_fd(), AUDIT_USER_SELINUX_ERR, buf, NULL, NULL, NULL, 0); return 0; } } #endif fmt2 = strjoina("selinux: ", fmt); va_start(ap, fmt); #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wformat-nonliteral" log_internalv(LOG_AUTH | callback_type_to_priority(type), 0, __FILE__, __LINE__, __FUNCTION__, fmt2, ap); #pragma GCC diagnostic pop va_end(ap); return 0; }
_printf_(6,0) static void udev_kmod_log(void *data, int priority, const char *file, int line, const char *fn, const char *format, va_list args) { log_internalv(priority, 0, file, line, fn, format, args); }