summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--recipes-security/audit/audit/0001-Remove-strdupa-as-suggested-in-pull-request-25.patch47
-rw-r--r--recipes-security/audit/audit/0002-Add-substitue-functions-for-strndupa-rawmemchr.patch134
-rw-r--r--recipes-security/audit/audit_2.8.4.bb2
3 files changed, 183 insertions, 0 deletions
diff --git a/recipes-security/audit/audit/0001-Remove-strdupa-as-suggested-in-pull-request-25.patch b/recipes-security/audit/audit/0001-Remove-strdupa-as-suggested-in-pull-request-25.patch
new file mode 100644
index 0000000..38029aa
--- /dev/null
+++ b/recipes-security/audit/audit/0001-Remove-strdupa-as-suggested-in-pull-request-25.patch
@@ -0,0 +1,47 @@
1From a1782b58b687b74249dc8b2411a3f646b821ebd6 Mon Sep 17 00:00:00 2001
2From: Steve Grubb <sgrubb@redhat.com>
3Date: Thu, 4 Oct 2018 08:45:47 -0400
4Subject: [PATCH] Remove strdupa as suggested in pull request #25
5
6---
7 src/auditd.c | 11 ++++++-----
8 1 file changed, 6 insertions(+), 5 deletions(-)
9
10Origin: https://github.com/linux-audit/audit-userspace/commit/a1782b58b687b74249dc8b2411a3f646b821ebd6
11Applied-Upstream: yes
12
13diff --git a/src/auditd.c b/src/auditd.c
14index b0952db..c826ec0 100644
15--- a/src/auditd.c
16+++ b/src/auditd.c
17@@ -209,21 +209,22 @@ static void cont_handler(struct ev_loop *loop, struct ev_signal *sig,
18
19 static int extract_type(const char *str)
20 {
21- const char *tptr, *ptr2, *ptr = str;
22+ const char *ptr2, *ptr = str;
23 if (*str == 'n') {
24 ptr = strchr(str+1, ' ');
25 if (ptr == NULL)
26 return -1; // Malformed - bomb out
27 ptr++;
28 }
29+
30 // ptr should be at 't'
31 ptr2 = strchr(ptr, ' ');
32- // get type=xxx in a buffer
33- tptr = strndupa(ptr, ptr2 - ptr);
34+
35 // find =
36- str = strchr(tptr, '=');
37- if (str == NULL)
38+ str = strchr(ptr, '=');
39+ if (str == NULL || str >= ptr2)
40 return -1; // Malformed - bomb out
41+
42 // name is 1 past
43 str++;
44 return audit_name_to_msg_type(str);
45--
462.20.1
47
diff --git a/recipes-security/audit/audit/0002-Add-substitue-functions-for-strndupa-rawmemchr.patch b/recipes-security/audit/audit/0002-Add-substitue-functions-for-strndupa-rawmemchr.patch
new file mode 100644
index 0000000..c948aa3
--- /dev/null
+++ b/recipes-security/audit/audit/0002-Add-substitue-functions-for-strndupa-rawmemchr.patch
@@ -0,0 +1,134 @@
1From 5346b6af0ca67a2965ca5846ae150f3021a2aa17 Mon Sep 17 00:00:00 2001
2From: Steve Grubb <sgrubb@redhat.com>
3Date: Tue, 26 Feb 2019 18:33:33 -0500
4Subject: [PATCH] Add substitue functions for strndupa & rawmemchr
5
6---
7Origin: https://github.com/linux-audit/audit-userspace/commit/d579a08bb1cde71f939c13ac6b2261052ae9f77e
8Applied-Upstream: yes
9
10 auparse/auparse.c | 12 +++++++++++-
11 auparse/interpret.c | 9 ++++++++-
12 configure.ac | 14 +++++++++++++-
13 src/ausearch-lol.c | 12 +++++++++++-
14 4 files changed, 43 insertions(+), 4 deletions(-)
15
16diff --git a/auparse/auparse.c b/auparse/auparse.c
17index f84712e..3764046 100644
18--- a/auparse/auparse.c
19+++ b/auparse/auparse.c
20@@ -1,5 +1,5 @@
21 /* auparse.c --
22- * Copyright 2006-08,2012-17 Red Hat Inc., Durham, North Carolina.
23+ * Copyright 2006-08,2012-19 Red Hat Inc., Durham, North Carolina.
24 * All Rights Reserved.
25 *
26 * This library is free software; you can redistribute it and/or
27@@ -1100,6 +1100,16 @@ static int str2event(char *s, au_event_t *e)
28 return 0;
29 }
30
31+#ifndef HAVE_STRNDUPA
32+static inline char *strndupa(const char *old, size_t n)
33+{
34+ size_t len = strnlen(old, n);
35+ char *tmp = alloca(len + 1);
36+ tmp[len] = 0;
37+ return memcpy(tmp, old, len);
38+}
39+#endif
40+
41 /* Returns 0 on success and 1 on error */
42 static int extract_timestamp(const char *b, au_event_t *e)
43 {
44diff --git a/auparse/interpret.c b/auparse/interpret.c
45index 1846f9d..8540bd1 100644
46--- a/auparse/interpret.c
47+++ b/auparse/interpret.c
48@@ -853,6 +853,13 @@ err_out:
49 return print_escaped(id->val);
50 }
51
52+// rawmemchr is faster. Let's use it if we have it.
53+#ifdef HAVE_RAWMEMCHR
54+#define STRCHR rawmemchr
55+#else
56+#define STRCHR strchr
57+#endif
58+
59 static const char *print_proctitle(const char *val)
60 {
61 char *out = (char *)print_escaped(val);
62@@ -863,7 +870,7 @@ static const char *print_proctitle(const char *val)
63 // Proctitle has arguments separated by NUL bytes
64 // We need to write over the NUL bytes with a space
65 // so that we can see the arguments
66- while ((ptr = rawmemchr(ptr, '\0'))) {
67+ while ((ptr = STRCHR(ptr, '\0'))) {
68 if (ptr >= end)
69 break;
70 *ptr = ' ';
71diff --git a/configure.ac b/configure.ac
72index ede7109..97b547f 100644
73--- a/configure.ac
74+++ b/configure.ac
75@@ -1,7 +1,7 @@
76 dnl
77 define([AC_INIT_NOTICE],
78 [### Generated automatically using autoconf version] AC_ACVERSION [
79-### Copyright 2005-18 Steve Grubb <sgrubb@redhat.com>
80+### Copyright 2005-19 Steve Grubb <sgrubb@redhat.com>
81 ###
82 ### Permission is hereby granted, free of charge, to any person obtaining a
83 ### copy of this software and associated documentation files (the "Software"),
84@@ -72,6 +72,18 @@ dnl; posix_fallocate is used in audisp-remote
85 AC_CHECK_FUNCS([posix_fallocate])
86 dnl; signalfd is needed for libev
87 AC_CHECK_FUNC([signalfd], [], [ AC_MSG_ERROR([The signalfd system call is necessary for auditd]) ])
88+dnl; check if rawmemchr is available
89+AC_CHECK_FUNCS([rawmemchr])
90+dnl; check if strndupa is available
91+AC_LINK_IFELSE(
92+ [AC_LANG_SOURCE(
93+ [[
94+ #define _GNU_SOURCE
95+ #include <string.h>
96+ int main() { (void) strndupa("test", 10); return 0; }]])],
97+ [AC_DEFINE(HAVE_STRNDUPA, 1, [Let us know if we have it or not])],
98+ []
99+)
100
101 ALLWARNS=""
102 ALLDEBUG="-g"
103diff --git a/src/ausearch-lol.c b/src/ausearch-lol.c
104index 4fbfbae..5eecefe 100644
105--- a/src/ausearch-lol.c
106+++ b/src/ausearch-lol.c
107@@ -1,6 +1,6 @@
108 /*
109 * ausearch-lol.c - linked list of linked lists library
110-* Copyright (c) 2008,2010,2014,2016 Red Hat Inc., Durham, North Carolina.
111+* Copyright (c) 2008,2010,2014,2016,2019 Red Hat Inc., Durham, North Carolina.
112 * All Rights Reserved.
113 *
114 * This software may be freely redistributed and/or modified under the
115@@ -131,6 +131,16 @@ static int inline events_are_equal(event *e1, event *e2)
116 return 1;
117 }
118
119+#ifndef HAVE_STRNDUPA
120+static inline char *strndupa(const char *old, size_t n)
121+{
122+ size_t len = strnlen(old, n);
123+ char *tmp = alloca(len + 1);
124+ tmp[len] = 0;
125+ return memcpy(tmp, old, len);
126+}
127+#endif
128+
129 /*
130 * This function will look at the line and pick out pieces of it.
131 */
132--
1332.20.1
134
diff --git a/recipes-security/audit/audit_2.8.4.bb b/recipes-security/audit/audit_2.8.4.bb
index c756552..c29bb74 100644
--- a/recipes-security/audit/audit_2.8.4.bb
+++ b/recipes-security/audit/audit_2.8.4.bb
@@ -11,6 +11,8 @@ SRC_URI = "http://people.redhat.com/sgrubb/${BPN}/${BPN}-${PV}.tar.gz \
11 file://audit-python-configure.patch \ 11 file://audit-python-configure.patch \
12 file://audit-python.patch \ 12 file://audit-python.patch \
13 file://fix-swig-host-contamination.patch \ 13 file://fix-swig-host-contamination.patch \
14 file://0001-Remove-strdupa-as-suggested-in-pull-request-25.patch \
15 file://0002-Add-substitue-functions-for-strndupa-rawmemchr.patch \
14 file://auditd \ 16 file://auditd \
15 file://auditd.service \ 17 file://auditd.service \
16 file://audit-volatile.conf \ 18 file://audit-volatile.conf \