From: Lennart Poettering Date: Wed, 13 Feb 2013 18:35:08 +0000 (+0100) Subject: selinux: use a dynamically sized string when generating audit messages X-Git-Tag: v198~263 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=ace188cf3a0de77cb644f0e4dee7853c4f6404fd;p=elogind.git selinux: use a dynamically sized string when generating audit messages https://bugzilla.redhat.com/show_bug.cgi?id=883043 --- diff --git a/src/core/selinux-access.c b/src/core/selinux-access.c index 08a483457..bc195f3c5 100644 --- a/src/core/selinux-access.c +++ b/src/core/selinux-access.c @@ -181,13 +181,18 @@ static int log_callback(int type, const char *fmt, ...) { #ifdef HAVE_AUDIT if (get_audit_fd() >= 0) { - char buf[LINE_MAX]; + _cleanup_free_ char *buf = NULL; + int r; - vsnprintf(buf, sizeof(buf), fmt, ap); - audit_log_user_avc_message(get_audit_fd(), AUDIT_USER_AVC, buf, NULL, NULL, NULL, 0); + r = vasprintf(&buf, fmt, ap); va_end(ap); - return 0; + if (r >= 0) { + audit_log_user_avc_message(get_audit_fd(), AUDIT_USER_AVC, buf, NULL, NULL, NULL, 0); + return 0; + } + + va_start(ap, fmt); } #endif log_metav(LOG_USER | LOG_INFO, __FILE__, __LINE__, __FUNCTION__, fmt, ap);