diff -urp audit-2.6.7/audisp/audispd-builtins.c audit-2.6.7.orig/audisp/audispd-builtins.c --- audit-2.6.7/audisp/audispd-builtins.c 2016-08-02 11:55:31.000000000 -0400 +++ audit-2.6.7.orig/audisp/audispd-builtins.c 2016-08-09 12:32:54.524964714 -0400 @@ -327,10 +327,24 @@ static void init_syslog(const plugin_con syslog_started = 1; } -void send_syslog(const char *s) +void send_syslog(const char *s, uint32_t ver) { - if (syslog_started) + if (syslog_started) { + if (ver == AUDISP_PROTOCOL_VER2) { + char *ptr = strdup(s); + if (ptr) { + char *c = strchr(ptr, AUDIT_INTERP_SEPARATOR); + if (c) + *c = ' '; + syslog(priority, "%s", ptr); + free(ptr); + return; + } + } + // Everything should fall through except success because + // something is better than nothing. syslog(priority, "%s", s); + } } void destroy_syslog(void) diff -urp audit-2.6.7/audisp/audispd-builtins.h audit-2.6.7.orig/audisp/audispd-builtins.h --- audit-2.6.7/audisp/audispd-builtins.h 2016-08-02 11:55:31.000000000 -0400 +++ audit-2.6.7.orig/audisp/audispd-builtins.h 2016-08-09 12:25:38.274976900 -0400 @@ -31,7 +31,7 @@ void stop_builtin(plugin_conf_t *conf); void send_af_unix_string(const char *s, unsigned int len); void send_af_unix_binary(event_t *e); void destroy_af_unix(void); -void send_syslog(const char *s); +void send_syslog(const char *s, uint32_t ver); void destroy_syslog(void); typedef void (*poll_callback_ptr)(int fd); diff -urp audit-2.6.7/audisp/audispd.c audit-2.6.7.orig/audisp/audispd.c --- audit-2.6.7/audisp/audispd.c 2016-08-02 11:55:31.000000000 -0400 +++ audit-2.6.7.orig/audisp/audispd.c 2016-08-09 12:25:06.357977791 -0400 @@ -684,7 +684,7 @@ static int event_loop(void) /* Now send the event to the right child */ if (conf->p->type == S_SYSLOG) - send_syslog(v); + send_syslog(v, e->hdr.ver); else if (conf->p->type == S_AF_UNIX) { if (conf->p->format == F_STRING) send_af_unix_string(v, len);