add sys-process/audit-2.8.4 with python 3.7 support

This commit is contained in:
2020-07-06 08:50:33 +03:00
parent ccdaa94fea
commit 4d5ea0d666
15 changed files with 1232 additions and 0 deletions

View File

@@ -0,0 +1,212 @@
diff -Nuar -X exclude audit-2.1.3.orig/configure.ac audit-2.1.3/configure.ac
--- audit-2.1.3.orig/configure.ac 2011-08-15 17:30:58.000000000 +0000
+++ audit-2.1.3/configure.ac 2012-12-18 20:03:22.000000000 +0000
@@ -79,6 +79,9 @@
esac
fi
+AC_CHECK_HEADER([asm/ptrace.h], [AC_DEFINE([HAVE_ASM_PTRACE_H],[],[Define to 1 if you have asm/ptrace.h])], [])
+AC_CHECK_HEADER([linux/ptrace.h], [AC_DEFINE([HAVE_LINUX_PTRACE_H],[],[Define to 1 if you have linux/ptrace.h])], [])
+
#gssapi
AC_ARG_ENABLE(gssapi_krb5,
[AS_HELP_STRING([--enable-gssapi-krb5],[Enable GSSAPI Kerberos 5 support @<:@default=no@:>@])],
diff -Nuar -X exclude audit-2.1.3.orig/src/auditctl.c audit-2.1.3/src/auditctl.c
--- audit-2.1.3.orig/src/auditctl.c 2011-08-15 17:31:00.000000000 +0000
+++ audit-2.1.3/src/auditctl.c 2012-12-18 20:21:21.000000000 +0000
@@ -22,6 +22,7 @@
*/
#include "config.h"
+#include "fixup.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h> /* strdup needs xopen define */
diff -Nuar -X exclude audit-2.1.3.orig/src/auditd-config.c audit-2.1.3/src/auditd-config.c
--- audit-2.1.3.orig/src/auditd-config.c 2011-08-15 17:31:00.000000000 +0000
+++ audit-2.1.3/src/auditd-config.c 2012-12-18 20:21:23.000000000 +0000
@@ -22,6 +22,7 @@
*/
#include "config.h"
+#include "fixup.h"
#include <stdio.h>
#include <unistd.h>
#include <sys/stat.h>
diff -Nuar -X exclude audit-2.1.3.orig/src/auditd-dispatch.c audit-2.1.3/src/auditd-dispatch.c
--- audit-2.1.3.orig/src/auditd-dispatch.c 2011-08-15 17:31:00.000000000 +0000
+++ audit-2.1.3/src/auditd-dispatch.c 2012-12-18 20:21:27.000000000 +0000
@@ -22,6 +22,7 @@
*/
#include "config.h"
+#include "fixup.h"
#include <unistd.h>
#include <sys/uio.h>
#include <fcntl.h>
diff -Nuar -X exclude audit-2.1.3.orig/src/auditd-event.c audit-2.1.3/src/auditd-event.c
--- audit-2.1.3.orig/src/auditd-event.c 2011-08-15 17:31:00.000000000 +0000
+++ audit-2.1.3/src/auditd-event.c 2012-12-18 20:21:29.000000000 +0000
@@ -22,6 +22,7 @@
*/
#include "config.h"
+#include "fixup.h"
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
diff -Nuar -X exclude audit-2.1.3.orig/src/auditd-listen.c audit-2.1.3/src/auditd-listen.c
--- audit-2.1.3.orig/src/auditd-listen.c 2011-08-15 17:31:00.000000000 +0000
+++ audit-2.1.3/src/auditd-listen.c 2012-12-18 20:21:31.000000000 +0000
@@ -22,6 +22,7 @@
*/
#include "config.h"
+#include "fixup.h"
#include <stdio.h>
#include <unistd.h>
#include <sys/stat.h>
diff -Nuar -X exclude audit-2.1.3.orig/src/auditd-reconfig.c audit-2.1.3/src/auditd-reconfig.c
--- audit-2.1.3.orig/src/auditd-reconfig.c 2011-08-15 17:31:00.000000000 +0000
+++ audit-2.1.3/src/auditd-reconfig.c 2012-12-18 20:21:33.000000000 +0000
@@ -22,6 +22,7 @@
*/
#include "config.h"
+#include "fixup.h"
#include <pthread.h>
#include <signal.h>
#include <stdlib.h>
diff -Nuar -X exclude audit-2.1.3.orig/src/auditd-sendmail.c audit-2.1.3/src/auditd-sendmail.c
--- audit-2.1.3.orig/src/auditd-sendmail.c 2011-08-15 17:31:00.000000000 +0000
+++ audit-2.1.3/src/auditd-sendmail.c 2012-12-18 20:21:34.000000000 +0000
@@ -22,6 +22,7 @@
*/
#include "config.h"
+#include "fixup.h"
#include <stdio.h>
#include <unistd.h> // for access()
#include <string.h>
diff -Nuar -X exclude audit-2.1.3.orig/src/auditd.c audit-2.1.3/src/auditd.c
--- audit-2.1.3.orig/src/auditd.c 2011-08-15 17:31:00.000000000 +0000
+++ audit-2.1.3/src/auditd.c 2012-12-18 20:21:38.000000000 +0000
@@ -22,6 +22,7 @@
*/
#include "config.h"
+#include "fixup.h"
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
diff -Nuar -X exclude audit-2.1.3.orig/src/autrace.c audit-2.1.3/src/autrace.c
--- audit-2.1.3.orig/src/autrace.c 2011-08-15 17:31:00.000000000 +0000
+++ audit-2.1.3/src/autrace.c 2012-12-18 20:21:43.000000000 +0000
@@ -21,6 +21,7 @@
*/
#include "config.h"
+#include "fixup.h"
#include <stdio.h>
#include <string.h>
#include <sys/wait.h>
diff -Nuar -X exclude audit-2.1.3.orig/src/delete_all.c audit-2.1.3/src/delete_all.c
--- audit-2.1.3.orig/src/delete_all.c 2011-08-15 17:31:00.000000000 +0000
+++ audit-2.1.3/src/delete_all.c 2012-12-18 20:21:48.000000000 +0000
@@ -20,6 +20,7 @@
* Steve Grubb <sgrubb@redhat.com>
*/
#include "config.h"
+#include "fixup.h"
#include <stdio.h>
#include <string.h>
#include <errno.h>
diff -Nuar -X exclude audit-2.1.3.orig/lib/fixup.h audit-2.1.3/lib/fixup.h
--- audit-2.1.3.orig/lib/fixup.h 1970-01-01 00:00:00.000000000 +0000
+++ audit-2.1.3/lib/fixup.h 2012-12-18 20:21:02.000000000 +0000
@@ -0,0 +1,17 @@
+#ifndef _AUDIT_IA64_FIXUP_H_
+#define _AUDIT_IA64_FIXUP_H_
+
+#ifdef __ia64__ /* what a pos */
+# include <linux/types.h>
+# define _ASM_IA64_FPU_H
+#endif
+#include <signal.h>
+/*
+#ifdef HAVE_ASM_PTRACE_H
+# include <asm/ptrace.h>
+#endif
+#ifdef HAVE_LINUX_PTRACE_H
+# include <linux/ptrace.h>
+#endif
+*/
+#endif
--- audit-2.1.3/src/ausearch.c 2012-12-22 03:09:54.000000000 +0000
+++ audit-2.1.3/src/ausearch.c 2012-12-22 03:10:02.000000000 +0000
@@ -22,6 +22,7 @@
*/
#include "config.h"
+#include "fixup.h"
#include <stdio.h>
#include <stdio_ext.h>
#include <string.h>
diff -Nuar audit-2.1.3.orig/audisp/audispd.c audit-2.1.3/audisp/audispd.c
--- audit-2.1.3.orig/audisp/audispd.c 2011-08-15 17:30:59.000000000 +0000
+++ audit-2.1.3/audisp/audispd.c 2012-12-22 03:25:15.000000000 +0000
@@ -21,6 +21,7 @@
*/
#include "config.h"
+#include "fixup.h"
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
diff -Nuar audit-2.1.3.orig/audisp/plugins/prelude/audisp-prelude.c audit-2.1.3/audisp/plugins/prelude/audisp-prelude.c
--- audit-2.1.3.orig/audisp/plugins/prelude/audisp-prelude.c 2011-08-15 17:30:59.000000000 +0000
+++ audit-2.1.3/audisp/plugins/prelude/audisp-prelude.c 2012-12-22 03:25:20.000000000 +0000
@@ -21,6 +21,8 @@
*
*/
+#include "config.h"
+#include "fixup.h"
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
diff -Nuar audit-2.1.3.orig/audisp/plugins/remote/audisp-remote.c audit-2.1.3/audisp/plugins/remote/audisp-remote.c
--- audit-2.1.3.orig/audisp/plugins/remote/audisp-remote.c 2011-08-15 17:30:59.000000000 +0000
+++ audit-2.1.3/audisp/plugins/remote/audisp-remote.c 2012-12-22 03:25:22.000000000 +0000
@@ -22,6 +22,7 @@
*/
#include "config.h"
+#include "fixup.h"
#include <stdio.h>
#include <signal.h>
#include <syslog.h>
diff -Nuar audit-2.1.3.orig/contrib/plugin/audisp-example.c audit-2.1.3/contrib/plugin/audisp-example.c
--- audit-2.1.3.orig/contrib/plugin/audisp-example.c 2011-08-15 17:31:02.000000000 +0000
+++ audit-2.1.3/contrib/plugin/audisp-example.c 2012-12-22 03:25:27.000000000 +0000
@@ -37,6 +37,8 @@
*/
#define _GNU_SOURCE
+#include "config.h"
+#include "fixup.h"
#include <stdio.h>
#include <signal.h>
#include <string.h>
diff -Nuar audit-2.1.3.orig/contrib/skeleton.c audit-2.1.3/contrib/skeleton.c
--- audit-2.1.3.orig/contrib/skeleton.c 2011-08-15 17:31:02.000000000 +0000
+++ audit-2.1.3/contrib/skeleton.c 2012-12-22 03:25:40.000000000 +0000
@@ -7,6 +7,8 @@
* gcc skeleton.c -o skeleton -laudit
*/
+#include "config.h"
+#include "fixup.h"
#include <stdio.h>
#include <sys/types.h>
#include <sys/uio.h>

View File

@@ -0,0 +1,46 @@
diff -ur audit-2.4.3.orig/bindings/python/python2/Makefile.am audit-2.4.3/bindings/python/python2/Makefile.am
--- audit-2.4.3.orig/bindings/python/python2/Makefile.am 2015-07-22 23:35:24.315424091 +0800
+++ audit-2.4.3/bindings/python/python2/Makefile.am 2015-07-22 23:37:16.861510504 +0800
@@ -29,5 +29,6 @@
auparse_la_SOURCES = $(top_srcdir)/bindings/python/auparse_python.c
auparse_la_CPPFLAGS = -I$(top_srcdir)/auparse $(AM_CPPFLAGS)
-auparse_la_LDFLAGS = -module -avoid-version -Wl,-z,relro
+auparse_la_CFLAGS = -shared
+auparse_la_LDFLAGS = -module -avoid-version -shared -Wl,-z,relro
auparse_la_LIBADD = ${top_builddir}/auparse/libauparse.la ${top_builddir}/lib/libaudit.la
diff -ur audit-2.4.3.orig/bindings/python/python3/Makefile.am audit-2.4.3/bindings/python/python3/Makefile.am
--- audit-2.4.3.orig/bindings/python/python3/Makefile.am 2015-07-22 23:35:24.315424091 +0800
+++ audit-2.4.3/bindings/python/python3/Makefile.am 2015-07-22 23:37:30.395400641 +0800
@@ -28,5 +28,6 @@
auparse_la_SOURCES = $(top_srcdir)/bindings/python/auparse_python.c
auparse_la_CPPFLAGS = -I$(top_srcdir)/auparse $(AM_CPPFLAGS)
-auparse_la_LDFLAGS = -module -avoid-version -Wl,-z,relro
+auparse_la_CFLAGS = -shared
+auparse_la_LDFLAGS = -module -avoid-version -shared -Wl,-z,relro
auparse_la_LIBADD = ${top_builddir}/auparse/libauparse.la ${top_builddir}/lib/libaudit.la
diff -ur audit-2.4.3.orig/bindings/swig/python/Makefile.am audit-2.4.3/bindings/swig/python/Makefile.am
--- audit-2.4.3.orig/bindings/swig/python/Makefile.am 2015-07-22 23:35:24.316424083 +0800
+++ audit-2.4.3/bindings/swig/python/Makefile.am 2015-07-22 23:35:53.244189263 +0800
@@ -28,7 +28,7 @@
pyexec_LTLIBRARIES = _audit.la
pyexec_SOLIBRARIES = _audit.so
_audit_la_CFLAGS = -shared
-_audit_la_LDFLAGS = -module -avoid-version -Wl,-z,relro
+_audit_la_LDFLAGS = -module -avoid-version -shared -Wl,-z,relro
_audit_la_HEADERS: $(top_builddir)/config.h
_audit_la_DEPENDENCIES =${top_srcdir}/lib/libaudit.h ${top_builddir}/lib/libaudit.la
_audit_la_LIBADD = $(top_builddir)/lib/libaudit.la
diff -ur audit-2.4.3.orig/bindings/swig/python3/Makefile.am audit-2.4.3/bindings/swig/python3/Makefile.am
--- audit-2.4.3.orig/bindings/swig/python3/Makefile.am 2015-07-22 23:35:24.316424083 +0800
+++ audit-2.4.3/bindings/swig/python3/Makefile.am 2015-07-22 23:36:27.833908482 +0800
@@ -29,7 +29,7 @@
py3exec_LTLIBRARIES = _audit.la
py3exec_SOLIBRARIES = _audit.so
_audit_la_CFLAGS = -shared
-_audit_la_LDFLAGS = -module -avoid-version -Wl,-z,relro
+_audit_la_LDFLAGS = -module -avoid-version -shared -Wl,-z,relro
_audit_la_HEADERS: $(top_builddir)/config.h
_audit_la_DEPENDENCIES =${top_srcdir}/lib/libaudit.h ${top_builddir}/lib/libaudit.la
_audit_la_LIBADD = ${top_builddir}/lib/libaudit.la

View File

@@ -0,0 +1,173 @@
From db5c09f7995a27555a10418648d9dc7e1e8bb94b Mon Sep 17 00:00:00 2001
From: Luis Ressel <aranea@aixah.de>
Date: Mon, 13 Nov 2017 07:33:35 +0100
Subject: [PATCH] Musl compability
A couple of header fixes, one occurrence of rawmemchr() and three of
strndupa().
---
audisp/audispd.c | 4 +++-
auparse/auparse.c | 13 +++++++++++--
auparse/interpret.c | 2 +-
lib/libaudit.c | 2 +-
lib/netlink.c | 2 +-
src/auditctl.c | 1 +
src/auditd.c | 9 +++++++--
src/ausearch-lol.c | 13 +++++++++++--
8 files changed, 36 insertions(+), 10 deletions(-)
diff --git a/audisp/audispd.c b/audisp/audispd.c
index 9831cf3..0720814 100644
--- a/audisp/audispd.c
+++ b/audisp/audispd.c
@@ -31,7 +31,9 @@
#include <pthread.h>
#include <dirent.h>
#include <fcntl.h>
-#include <sys/poll.h>
+#include <limits.h>
+#include <poll.h>
+#include <sys/uio.h>
#include <netdb.h>
#include <arpa/inet.h>
diff --git a/auparse/auparse.c b/auparse/auparse.c
index 2812028..a5d8c9e 100644
--- a/auparse/auparse.c
+++ b/auparse/auparse.c
@@ -1090,10 +1090,19 @@ static int extract_timestamp(const char *b, au_event_t *e)
int rc = 1;
e->host = NULL;
+ char _tmp[341];
if (*b == 'n')
- tmp = strndupa(b, 340);
+ {
+ strncpy(_tmp, b, 340);
+ _tmp[340] = '\0';
+ tmp = _tmp;
+ }
else
- tmp = strndupa(b, 80);
+ {
+ strncpy(_tmp, b, 80);
+ _tmp[80] = '\0';
+ tmp = _tmp;
+ }
ptr = audit_strsplit(tmp);
if (ptr) {
// Optionally grab the node - may or may not be included
diff --git a/auparse/interpret.c b/auparse/interpret.c
index 071c4ef..ba38199 100644
--- a/auparse/interpret.c
+++ b/auparse/interpret.c
@@ -803,7 +803,7 @@ static const char *print_proctitle(const char *val)
size_t len = strlen(val) / 2;
const char *end = out + len;
char *ptr = out;
- while ((ptr = rawmemchr(ptr, '\0'))) {
+ while ((ptr = memchr(ptr, '\0', SIZE_MAX))) {
if (ptr >= end)
break;
*ptr = ' ';
diff --git a/lib/libaudit.c b/lib/libaudit.c
index f434d4a..bd679a5 100644
--- a/lib/libaudit.c
+++ b/lib/libaudit.c
@@ -32,7 +32,7 @@
#include <pwd.h>
#include <grp.h>
#include <errno.h>
-#include <sys/poll.h>
+#include <poll.h>
#include <sys/utsname.h>
#include <sys/stat.h>
#include <fcntl.h> /* O_NOFOLLOW needs gnu defined */
diff --git a/lib/netlink.c b/lib/netlink.c
index 90c79b9..9486560 100644
--- a/lib/netlink.c
+++ b/lib/netlink.c
@@ -27,7 +27,7 @@
#include <errno.h>
#include <fcntl.h>
#include <time.h>
-#include <sys/poll.h>
+#include <poll.h>
#include "libaudit.h"
#include "private.h"
diff --git a/src/auditctl.c b/src/auditctl.c
index 81000ee..6415264 100644
--- a/src/auditctl.c
+++ b/src/auditctl.c
@@ -34,6 +34,7 @@
#include <sys/utsname.h>
#include <fcntl.h>
#include <errno.h>
+#include <sys/select.h>
#include <libgen.h> /* For basename */
#include <limits.h> /* PATH_MAX */
#include "libaudit.h"
diff --git a/src/auditd.c b/src/auditd.c
index 3f0162d..535207d 100644
--- a/src/auditd.c
+++ b/src/auditd.c
@@ -30,6 +30,7 @@
#include <errno.h>
#include <string.h>
#include <time.h>
+#include <alloca.h>
#include <sys/resource.h>
#include <sys/time.h>
#include <sys/stat.h>
@@ -185,7 +186,9 @@ static void child_handler2( int sig )
static int extract_type(const char *str)
{
- const char *tptr, *ptr2, *ptr = str;
+ const char *ptr2, *ptr = str;
+ char *tptr;
+
if (*str == 'n') {
ptr = strchr(str+1, ' ');
if (ptr == NULL)
@@ -195,7 +198,9 @@ static int extract_type(const char *str)
// ptr should be at 't'
ptr2 = strchr(ptr, ' ');
// get type=xxx in a buffer
- tptr = strndupa(ptr, ptr2 - ptr);
+ tptr = (char *) alloca(ptr2 - ptr + 1);
+ strncpy(tptr, ptr, ptr2 - ptr);
+ tptr[ptr2 - ptr] = '\0';
// find =
str = strchr(tptr, '=');
if (str == NULL)
diff --git a/src/ausearch-lol.c b/src/ausearch-lol.c
index b1aec06..bb9330d 100644
--- a/src/ausearch-lol.c
+++ b/src/ausearch-lol.c
@@ -135,10 +135,19 @@ static int extract_timestamp(const char *b, event *e)
char *ptr, *tmp, *tnode, *ttype;
e->node = NULL;
+ char _tmp[341];
if (*b == 'n')
- tmp = strndupa(b, 340);
+ {
+ strncpy(_tmp, b, 340);
+ _tmp[340] = '\0';
+ tmp = _tmp;
+ }
else
- tmp = strndupa(b, 80);
+ {
+ strncpy(_tmp, b, 80);
+ _tmp[80] = '\0';
+ tmp = _tmp;
+ }
ptr = audit_strsplit(tmp);
if (ptr) {
// Check to see if this is the node info
--
2.15.0

View File

@@ -0,0 +1,11 @@
diff --git a/bindings/swig/src/auditswig.i b/bindings/swig/src/auditswig.i
index 356a5ab..41bdc6d 100644
--- a/bindings/swig/src/auditswig.i
+++ b/bindings/swig/src/auditswig.i
@@ -41,6 +41,5 @@ typedef unsigned __u32;
typedef unsigned uid_t;
%include "/usr/include/linux/audit.h"
#define __extension__ /*nothing*/
-%include "/usr/include/stdint.h"
%include "../lib/libaudit.h"

View File

@@ -0,0 +1,149 @@
diff -Naur audit-2.8.2.orig/audisp/audispd.c audit-2.8.2/audisp/audispd.c
--- audit-2.8.2.orig/audisp/audispd.c 2018-03-11 17:16:39.363923401 -0700
+++ audit-2.8.2/audisp/audispd.c 2018-03-11 17:17:35.163922402 -0700
@@ -31,7 +31,9 @@
#include <pthread.h>
#include <dirent.h>
#include <fcntl.h>
-#include <sys/poll.h>
+#include <limits.h>
+#include <poll.h>
+#include <sys/uio.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <limits.h>
diff -Naur audit-2.8.2.orig/auparse/auparse.c audit-2.8.2/auparse/auparse.c
--- audit-2.8.2.orig/auparse/auparse.c 2018-03-11 17:16:39.356923401 -0700
+++ audit-2.8.2/auparse/auparse.c 2018-03-11 17:19:15.311920608 -0700
@@ -1104,13 +1104,22 @@
static int extract_timestamp(const char *b, au_event_t *e)
{
char *ptr, *tmp;
+ char _tmp[341];
int rc = 1;
e->host = NULL;
if (*b == 'n')
- tmp = strndupa(b, 340);
+ {
+ strncpy(_tmp, b, 340);
+ _tmp[340] = '\0';
+ tmp = _tmp;
+ }
else
- tmp = strndupa(b, 80);
+ {
+ strncpy(_tmp, b, 80);
+ _tmp[80] = '\0';
+ tmp = _tmp;
+ }
ptr = audit_strsplit(tmp);
if (ptr) {
// Optionally grab the node - may or may not be included
diff -Naur audit-2.8.2.orig/auparse/interpret.c audit-2.8.2/auparse/interpret.c
--- audit-2.8.2.orig/auparse/interpret.c 2018-03-11 17:16:39.359923401 -0700
+++ audit-2.8.2/auparse/interpret.c 2018-03-11 17:19:51.658919957 -0700
@@ -860,7 +860,7 @@
// Proctitle has arguments separated by NUL bytes
// We need to write over the NUL bytes with a space
// so that we can see the arguments
- while ((ptr = rawmemchr(ptr, '\0'))) {
+ while ((ptr = memchr(ptr, '\0', SIZE_MAX))) {
if (ptr >= end)
break;
*ptr = ' ';
diff -Naur audit-2.8.2.orig/lib/libaudit.c audit-2.8.2/lib/libaudit.c
--- audit-2.8.2.orig/lib/libaudit.c 2018-03-11 17:16:39.336923401 -0700
+++ audit-2.8.2/lib/libaudit.c 2018-03-11 17:20:03.037919753 -0700
@@ -33,7 +33,7 @@
#include <pwd.h>
#include <grp.h>
#include <errno.h>
-#include <sys/poll.h>
+#include <poll.h>
#include <sys/utsname.h>
#include <sys/stat.h>
#include <fcntl.h> /* O_NOFOLLOW needs gnu defined */
diff -Naur audit-2.8.2.orig/lib/netlink.c audit-2.8.2/lib/netlink.c
--- audit-2.8.2.orig/lib/netlink.c 2018-03-11 17:16:39.339923401 -0700
+++ audit-2.8.2/lib/netlink.c 2018-03-11 17:20:13.132919573 -0700
@@ -27,7 +27,7 @@
#include <errno.h>
#include <fcntl.h>
#include <time.h>
-#include <sys/poll.h>
+#include <poll.h>
#include "libaudit.h"
#include "private.h"
diff -Naur audit-2.8.2.orig/src/auditctl.c audit-2.8.2/src/auditctl.c
--- audit-2.8.2.orig/src/auditctl.c 2018-03-11 17:16:39.348923401 -0700
+++ audit-2.8.2/src/auditctl.c 2018-03-11 17:20:31.154919250 -0700
@@ -37,6 +37,7 @@
#include <sys/time.h>
#include <fcntl.h>
#include <errno.h>
+#include <sys/select.h>
#include <libgen.h> /* For basename */
#include <limits.h> /* PATH_MAX */
#include "libaudit.h"
diff -Naur audit-2.8.2.orig/src/auditd.c audit-2.8.2/src/auditd.c
--- audit-2.8.2.orig/src/auditd.c 2018-03-11 17:16:39.351923401 -0700
+++ audit-2.8.2/src/auditd.c 2018-03-11 17:22:04.763917574 -0700
@@ -30,6 +30,7 @@
#include <errno.h>
#include <string.h>
#include <time.h>
+#include <alloca.h>
#include <sys/resource.h>
#include <sys/time.h>
#include <sys/stat.h>
@@ -187,7 +188,9 @@
static int extract_type(const char *str)
{
- const char *tptr, *ptr2, *ptr = str;
+ const char *ptr2, *ptr = str;
+ char *tptr;
+
if (*str == 'n') {
ptr = strchr(str+1, ' ');
if (ptr == NULL)
@@ -197,7 +200,9 @@
// ptr should be at 't'
ptr2 = strchr(ptr, ' ');
// get type=xxx in a buffer
- tptr = strndupa(ptr, ptr2 - ptr);
+ tptr = (char *) alloca(ptr2 - ptr + 1);
+ strncpy(tptr, ptr, ptr2 - ptr);
+ tptr[ptr2 - ptr] = '\0';
// find =
str = strchr(tptr, '=');
if (str == NULL)
diff -Naur audit-2.8.2.orig/src/ausearch-lol.c audit-2.8.2/src/ausearch-lol.c
--- audit-2.8.2.orig/src/ausearch-lol.c 2018-03-11 17:16:39.351923401 -0700
+++ audit-2.8.2/src/ausearch-lol.c 2018-03-11 17:23:30.575916037 -0700
@@ -135,12 +135,21 @@
static int extract_timestamp(const char *b, event *e)
{
char *ptr, *tmp, *tnode, *ttype;
+ char _tmp[341];
e->node = NULL;
if (*b == 'n')
- tmp = strndupa(b, 340);
+ {
+ strncpy(_tmp, b, 340);
+ _tmp[340] = '\0';
+ tmp = _tmp;
+ }
else
- tmp = strndupa(b, 80);
+ {
+ strncpy(_tmp, b, 80);
+ _tmp[80] = '\0';
+ tmp = _tmp;
+ }
ptr = audit_strsplit(tmp);
if (ptr) {
// Check to see if this is the node info

View File

@@ -0,0 +1,195 @@
--- a/audisp/audispd.c
+++ b/audisp/audispd.c
@@ -21,6 +21,7 @@
*/
#include "config.h"
+#include "fixup.h"
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
--- a/audisp/plugins/prelude/audisp-prelude.c
+++ b/audisp/plugins/prelude/audisp-prelude.c
@@ -21,6 +21,8 @@
*
*/
+#include "config.h"
+#include "fixup.h"
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
--- a/audisp/plugins/remote/audisp-remote.c
+++ b/audisp/plugins/remote/audisp-remote.c
@@ -22,6 +22,7 @@
*/
#include "config.h"
+#include "fixup.h"
#include <stdio.h>
#include <signal.h>
#include <syslog.h>
--- a/configure.ac
+++ b/configure.ac
@@ -216,6 +216,9 @@ AC_ARG_ENABLE(zos-remote,
AM_CONDITIONAL(ENABLE_ZOS_REMOTE, test "x$enable_zos_remote" != "xno")
AC_MSG_RESULT($enable_zos_remote)
+AC_CHECK_HEADER([asm/ptrace.h], [AC_DEFINE([HAVE_ASM_PTRACE_H],[],[Define to 1 if you have asm/ptrace.h])], [])
+AC_CHECK_HEADER([linux/ptrace.h], [AC_DEFINE([HAVE_LINUX_PTRACE_H],[],[Define to 1 if you have linux/ptrace.h])], [])
+
#gssapi
AC_ARG_ENABLE(gssapi_krb5,
[AS_HELP_STRING([--enable-gssapi-krb5],[Enable GSSAPI Kerberos 5 support @<:@default=no@:>@])],
--- a/contrib/plugin/audisp-example.c
+++ b/contrib/plugin/audisp-example.c
@@ -37,6 +37,8 @@
*/
#define _GNU_SOURCE
+#include "config.h"
+#include "fixup.h"
#include <stdio.h>
#include <signal.h>
#include <string.h>
--- a/contrib/skeleton.c
+++ b/contrib/skeleton.c
@@ -13,6 +13,8 @@
* gcc skeleton.c -o skeleton -laudit
*/
+#include "config.h"
+#include "fixup.h"
#include <stdio.h>
#include <sys/types.h>
#include <sys/uio.h>
--- /dev/null
+++ b/lib/fixup.h
@@ -0,0 +1,17 @@
+#ifndef _AUDIT_IA64_FIXUP_H_
+#define _AUDIT_IA64_FIXUP_H_
+
+#ifdef __ia64__ /* what a pos */
+# include <linux/types.h>
+# define _ASM_IA64_FPU_H
+#endif
+#include <signal.h>
+/*
+#ifdef HAVE_ASM_PTRACE_H
+# include <asm/ptrace.h>
+#endif
+#ifdef HAVE_LINUX_PTRACE_H
+# include <linux/ptrace.h>
+#endif
+*/
+#endif
--- a/src/auditctl.c
+++ b/src/auditctl.c
@@ -23,6 +23,7 @@
*/
#include "config.h"
+#include "fixup.h"
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
--- a/src/auditd-config.c
+++ b/src/auditd-config.c
@@ -22,6 +22,7 @@
*/
#include "config.h"
+#include "fixup.h"
#include <stdio.h>
#include <unistd.h>
#include <sys/stat.h>
--- a/src/auditd-dispatch.c
+++ b/src/auditd-dispatch.c
@@ -22,6 +22,7 @@
*/
#include "config.h"
+#include "fixup.h"
#include <unistd.h>
#include <sys/uio.h>
#include <fcntl.h>
--- a/src/auditd-event.c
+++ b/src/auditd-event.c
@@ -22,6 +22,7 @@
*/
#include "config.h"
+#include "fixup.h"
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
--- a/src/auditd-listen.c
+++ b/src/auditd-listen.c
@@ -23,6 +23,7 @@
*/
#include "config.h"
+#include "fixup.h"
#include <stdio.h>
#include <unistd.h>
#include <sys/stat.h>
--- a/src/auditd-reconfig.c
+++ b/src/auditd-reconfig.c
@@ -22,6 +22,7 @@
*/
#include "config.h"
+#include "fixup.h"
#include <pthread.h>
#include <signal.h>
#include <stdlib.h>
--- a/src/auditd-sendmail.c
+++ b/src/auditd-sendmail.c
@@ -22,6 +22,7 @@
*/
#include "config.h"
+#include "fixup.h"
#include <stdio.h>
#include <unistd.h> // for access()
#include <string.h>
--- a/src/auditd.c
+++ b/src/auditd.c
@@ -22,6 +22,7 @@
*/
#include "config.h"
+#include "fixup.h"
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
--- a/src/ausearch.c
+++ b/src/ausearch.c
@@ -22,6 +22,7 @@
*/
#include "config.h"
+#include "fixup.h"
#include <stdio.h>
#include <stdio_ext.h>
#include <string.h>
--- a/src/autrace.c
+++ b/src/autrace.c
@@ -21,6 +21,7 @@
*/
#include "config.h"
+#include "fixup.h"
#include <stdio.h>
#include <string.h>
#include <sys/wait.h>
--- a/src/delete_all.c
+++ b/src/delete_all.c
@@ -20,6 +20,7 @@
* Steve Grubb <sgrubb@redhat.com>
*/
#include "config.h"
+#include "fixup.h"
#include <stdio.h>
#include <string.h>
#include <errno.h>

View File

@@ -0,0 +1,24 @@
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
#
# This file contains the auditctl rules that are loaded
# whenever the audit daemon is started via the initscripts.
# The rules are simply the parameters that would be passed
# to auditctl.
# First rule - delete all
# This is to clear out old rules, so we don't append to them.
-D
# Feel free to add below this line. See auditctl man page
# The following rule would cause all of the syscalls listed to be ignored in logging.
# -a entry,never -S read -S write -S open -S fstat -S fstat64 -S mmap -S brk -S munmap -S _llseek -S nanosleep -S fcntl64 -S close -S dup2 -S rt_sigaction -S stat64 -S stat
# The following rule would cause the capture of all systems not caught above.
# -a entry,always -S all
# Increase the buffers to survive stress events
-b 256
# vim:ft=conf:

View File

@@ -0,0 +1,25 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
#
# This file contains the auditctl rules that are loaded
# whenever the audit daemon is started via the initscripts.
# The rules are simply the parameters that would be passed
# to auditctl.
# First rule - delete all
# This is to clear out old rules, so we don't append to them.
-D
# Feel free to add below this line. See auditctl man page
# The following rule would cause all of the syscalls listed to be ignored in logging.
-a exit,never -F arch=b32 -S read -S write -S open -S fstat -S mmap -S brk -S munmap -S nanosleep -S fcntl -S close -S dup2 -S rt_sigaction -S stat
-a exit,never -F arch=b64 -S read -S write -S open -S fstat -S mmap -S brk -S munmap -S nanosleep -S fcntl -S close -S dup2 -S rt_sigaction -S stat
# The following rule would cause the capture of all systems not caught above.
# -a exit,always -S all
# Increase the buffers to survive stress events
-b 8192
# vim:ft=conf:

View File

@@ -0,0 +1,12 @@
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
#
# This file contains the auditctl rules that are loaded immediately after the
# audit deamon is stopped via the initscripts.
# The rules are simply the parameters that would be passed
# to auditctl.
# Not used for the default Gentoo configuration as of v1.2.3
# Paranoid security types might wish to reconfigure kauditd here.
# vim:ft=conf:

View File

@@ -0,0 +1,15 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
#
# This file contains the auditctl rules that are loaded immediately before the
# audit deamon is stopped via the initscripts.
# The rules are simply the parameters that would be passed
# to auditctl.
# auditd is stopping, don't capture events anymore
-D
# Disable kernel generating audit events
-e 0
# vim:ft=conf:

View File

@@ -0,0 +1,22 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# Configuration options for auditd
# -f for foreground mode
# There are some other options as well, but you'll have to look in the source
# code to find them as they aren't ready for use yet.
EXTRAOPTIONS=''
# Audit rules file to run after starting auditd
RULEFILE_STARTUP=/etc/audit/audit.rules
# Audit rules file to run before and after stopping auditd
RULEFILE_STOP_PRE=/etc/audit/audit.rules.stop.pre
RULEFILE_STOP_POST=/etc/audit/audit.rules.stop.post
# If you want to enforce a certain locale for auditd,
# uncomment one of the next lines:
#AUDITD_LANG=none
AUDITD_LANG=C
#AUDITD_LANG=en_US
#AUDITD_LANG=en_US.UTF-8

View File

@@ -0,0 +1,90 @@
#!/sbin/openrc-run
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
extra_started_commands='reload reload_auditd reload_rules'
description='Linux Auditing System'
description_reload='Reload daemon configuration and rules'
description_reload_rules='Reload daemon rules'
description_reload_auditd='Reload daemon configuration'
name='auditd'
pidfile='/var/run/auditd.pid'
command='/sbin/auditd'
start_auditd() {
# Env handling taken from the upstream init script
if [ -z "$AUDITD_LANG" -o "$AUDITD_LANG" = "none" -o "$AUDITD_LANG" = "NONE" ]; then
unset LANG LC_TIME LC_ALL LC_MESSAGES LC_NUMERIC LC_MONETARY LC_COLLATE
else
LANG="$AUDITD_LANG"
LC_TIME="$AUDITD_LANG"
LC_ALL="$AUDITD_LANG"
LC_MESSAGES="$AUDITD_LANG"
LC_NUMERIC="$AUDITD_LANG"
LC_MONETARY="$AUDITD_LANG"
LC_COLLATE="$AUDITD_LANG"
export LANG LC_TIME LC_ALL LC_MESSAGES LC_NUMERIC LC_MONETARY LC_COLLATE
fi
unset HOME MAIL USER USERNAME
ebegin "Starting ${name}"
start-stop-daemon \
--start --quiet --pidfile ${pidfile} \
--exec ${command} -- ${EXTRAOPTIONS}
local ret=$?
eend $ret
return $ret
}
stop_auditd() {
ebegin "Stopping ${name}"
start-stop-daemon --stop --quiet --pidfile ${pidfile}
local ret=$?
eend $ret
return $ret
}
loadfile() {
local rules="$1"
if [ -n "${rules}" -a -f "${rules}" ]; then
einfo "Loading audit rules from ${rules}"
/sbin/auditctl -R "${rules}" >/dev/null
return $?
else
return 0
fi
}
start() {
start_auditd
local ret=$?
if [ $ret -eq 0 -a "${RC_CMD}" != "restart" ]; then
loadfile "${RULEFILE_STARTUP}"
fi
return $ret
}
reload_rules() {
loadfile "${RULEFILE_STARTUP}"
}
reload_auditd() {
ebegin "Reloading ${SVCNAME}"
start-stop-daemon --signal HUP \
--exec "${command}" --pidfile "${pidfile}"
eend $?
}
reload() {
reload_auditd
reload_rules
}
stop() {
[ "${RC_CMD}" != "restart" ] && loadfile "${RULEFILE_STOP_PRE}"
stop_auditd
local ret=$?
[ "${RC_CMD}" != "restart" ] && loadfile "${RULEFILE_STOP_POST}"
return $ret
}