1
Description: let library compile even when missing SYS_gettid, SOCK_PACKET,
2
and various RLIMITs that are Linux-specific, for build-time compatibility
3
with non-Linux environments.
4
Author: Kees Cook <kees@debian.org>
6
Index: apparmor-debian/libraries/libapparmor/src/kernel_interface.c
7
===================================================================
8
--- apparmor-debian.orig/libraries/libapparmor/src/kernel_interface.c 2011-04-29 19:21:52.837411699 -0700
9
+++ apparmor-debian/libraries/libapparmor/src/kernel_interface.c 2011-04-29 19:22:06.347591088 -0700
12
int fd, ret, ctlerr = 0;
15
pid_t tid = syscall(SYS_gettid);
17
+ pid_t tid = getpid();
22
Index: apparmor-debian/parser/parser_yacc.y
23
===================================================================
24
--- apparmor-debian.orig/parser/parser_yacc.y 2011-04-29 19:21:52.917412762 -0700
25
+++ apparmor-debian/parser/parser_yacc.y 2011-04-29 19:22:06.377591485 -0700
28
#include <netinet/in.h>
29
#include <arpa/inet.h>
30
+#include <sys/time.h>
31
+#include <sys/resource.h>
33
-#include <linux/capability.h>
35
+# include <linux/capability.h>
38
+# define SOCK_PACKET 10
42
#ifndef CAP_AUDIT_WRITE
43
#define CAP_AUDIT_WRITE 29
51
+#ifdef RLIMIT_SIGPENDING
52
case RLIMIT_SIGPENDING:
56
if ($6 == end || *end != '\0' || tmp < 0)
61
+#ifdef RLIMIT_MSGQUEUE
64
if ($6 == end || tmp < 0)
65
yyerror("RLIMIT '%s' invalid value %s\n", $4, $6);
66
if (strcmp(end, "K") == 0) {
67
Index: apparmor-debian/parser/parser_interface.c
68
===================================================================
69
--- apparmor-debian.orig/parser/parser_interface.c 2011-04-29 19:21:52.857411965 -0700
70
+++ apparmor-debian/parser/parser_interface.c 2011-04-29 19:22:06.377591485 -0700
72
#include "libapparmor_re/apparmor_re.h"
75
-#include <linux/unistd.h>
77
+# include <linux/unistd.h>
80
/* only for x86 at the moment */
82
Index: apparmor-debian/parser/parser_merge.c
83
===================================================================
84
--- apparmor-debian.orig/parser/parser_merge.c 2011-04-29 19:21:52.877412231 -0700
85
+++ apparmor-debian/parser/parser_merge.c 2011-04-29 19:22:06.377591485 -0700
87
* along with this program; if not, contact Novell, Inc.
90
-#include <linux/unistd.h>
92
+# include <linux/unistd.h>
97
Index: apparmor-debian/parser/parser_regex.c
98
===================================================================
99
--- apparmor-debian.orig/parser/parser_regex.c 2011-04-29 19:21:52.887412364 -0700
100
+++ apparmor-debian/parser/parser_regex.c 2011-04-29 19:22:06.377591485 -0700
107
-#include <linux/limits.h>
108
#define _(s) gettext(s)
111
Index: apparmor-debian/parser/parser_symtab.c
112
===================================================================
113
--- apparmor-debian.orig/parser/parser_symtab.c 2011-04-29 19:21:52.867412098 -0700
114
+++ apparmor-debian/parser/parser_symtab.c 2011-04-29 19:22:06.377591485 -0700
121
-#include <linux/limits.h>
122
#define _(s) gettext(s)
125
Index: apparmor-debian/parser/parser_variable.c
126
===================================================================
127
--- apparmor-debian.orig/parser/parser_variable.c 2011-04-29 19:21:52.907412630 -0700
128
+++ apparmor-debian/parser/parser_variable.c 2011-04-29 19:22:06.377591485 -0700
135
-#include <linux/limits.h>
137
#define _(s) gettext(s)
140
Index: apparmor-debian/parser/Makefile
141
===================================================================
142
--- apparmor-debian.orig/parser/Makefile 2011-05-01 15:32:36.304227232 -0700
143
+++ apparmor-debian/parser/Makefile 2011-05-01 15:44:16.433596779 -0700
145
LC_ALL=C sed -n -e "s/^\#define[ \\t]\\+PF_MAX[ \\t]\\+\\([0-9]\\+\\)[ \\t]\\+.*/#define AA_AF_MAX \\1\n/p" $< >> $@
148
-cap_names.h: /usr/include/linux/capability.h
149
- LC_ALL=C sed -n -e "/CAP_EMPTY_SET/d" -e "s/^\#define[ \\t]\\+CAP_\\([A-Z0-9_]\\+\\)[ \\t]\\+\\([0-9xa-f]\\+\\)\\(.*\\)\$$/\{\"\\L\\1\", \\UCAP_\\1\},/p" $< > $@
150
+cap_names.h: capabilities.h
151
+ LC_ALL=C $(CPP) -dM $< | sed -n -e "/CAP_EMPTY_SET/d" -e "s/^\#define[ \\t]\\+CAP_\\([A-Z0-9_]\\+\\)[ \\t]\\+\\([0-9xa-f]\\+\\)\\(.*\\)\$$/\{\"\\L\\1\", \\UCAP_\\1\},/p" > $@
153
tst_symtab: parser_symtab.c parser.h parser_variable.o
154
$(Q)$(CC) -DUNIT_TEST $(EXTRA_CFLAGS) $(TEST_FLAGS) -o $@ $< parser_variable.o $(BUILD_OUTPUT)
158
sh -e -c 'for test in ${TESTS} ; do echo "*** running $${test}" && ./$${test} $(BUILD_OUTPUT) ; done'
159
+ifeq ($(SKIP_TST_DIR),1)
160
$(Q)make -s -C tst tests
165
Index: apparmor-debian/parser/capabilities.h
166
===================================================================
167
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
168
+++ apparmor-debian/parser/capabilities.h 2011-05-01 15:44:16.463597181 -0700
171
+# include <linux/capability.h>
173
Index: apparmor-debian/parser/parser_misc.c
174
===================================================================
175
--- apparmor-debian.orig/parser/parser_misc.c 2011-05-01 15:44:13.523557738 -0700
176
+++ apparmor-debian/parser/parser_misc.c 2011-05-01 15:44:16.463597181 -0700
179
#define _(s) gettext(s)
180
#include <netinet/in.h>
181
-#include <linux/socket.h>
182
-#include <linux/limits.h>
183
+#include <sys/socket.h>
185
#include <arpa/inet.h>
186
-#include <linux/capability.h>
188
+# include <linux/capability.h>
190
#include <sys/types.h>
191
#include <sys/stat.h>
194
{"core", RLIMIT_CORE},
196
{"nofile", RLIMIT_NOFILE},
198
{"ofile", RLIMIT_OFILE},
201
{"nproc", RLIMIT_NPROC},
202
{"memlock", RLIMIT_MEMLOCK},
204
{"locks", RLIMIT_LOCKS},
206
+#ifdef RLIMIT_SIGPENDING
207
{"sigpending", RLIMIT_SIGPENDING},
209
+#ifdef RLIMIT_MSGQUEUE
210
{"msgqueue", RLIMIT_MSGQUEUE},
213
{"nice", RLIMIT_NICE},
217
#define RAW_ICMPv6 58
220
+# define SOCK_PACKET 10
223
/* used by af_name.h to auto generate table entries for "name", AF_NAME
225
#define AA_GEN_NET_ENT(name, AF) {name, AF, "stream", SOCK_STREAM, "", 0xffffff}, {name, AF, "dgram", SOCK_DGRAM, "", 0xffffff}, {name, AF, "seqpacket", SOCK_SEQPACKET, "", 0xffffff}, {name, AF, "rdm", SOCK_RDM, "", 0xffffff}, {name, AF, "raw", SOCK_RAW, "", 0xffffff}, {name, AF, "packet", SOCK_PACKET, "", 0xffffff},