aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-security/libseccomp/files/0006-ppc64-correct-the-ppc64-syscall-table-and-validation.patch
blob: d1903ff489e1e4596bb95f3d393d2c3358ced2de (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
From 75d3aa041dc3c8214610e44d317703c055e5e055 Mon Sep 17 00:00:00 2001
From: Paul Moore <pmoore@redhat.com>
Date: Tue, 10 Feb 2015 14:22:07 -0500
Subject: [PATCH 06/11] ppc64: correct the ppc64 syscall table and validation
 script

We didn't correctly take into account the __powerpc64__ define when
generating the ppc64 syscall table.  This patch also updates the
syscall table to match Linux v3.19.

Signed-off-by: Paul Moore <pmoore@redhat.com>
---
 src/arch-ppc64-syscalls.c | 26 ++++++++++++++------------
 src/arch-syscall-validate |  2 +-
 2 files changed, 15 insertions(+), 13 deletions(-)

diff --git a/src/arch-ppc64-syscalls.c b/src/arch-ppc64-syscalls.c
index 5dfb367..1c2a1df 100644
--- a/src/arch-ppc64-syscalls.c
+++ b/src/arch-ppc64-syscalls.c
@@ -27,7 +27,7 @@
 #include "arch.h"
 #include "arch-ppc64.h"
 
-/* NOTE: based on Linux 3.17-rc6+ */
+/* NOTE: based on Linux 3.19 */
 const struct arch_syscall_def ppc64_syscall_table[] = { \
 	{ "_llseek", 140 },
 	{ "_newselect", 142 },
@@ -45,6 +45,7 @@ const struct arch_syscall_def ppc64_syscall_table[] = { \
 	{ "arch_prctl", __PNR_arch_prctl },
 	{ "bdflush", 134 },
 	{ "bind", 327 },
+	{ "bpf", 361 },
 	{ "break", 17 },
 	{ "brk", 45 },
 	{ "cachectl", __PNR_cachectl },
@@ -80,11 +81,12 @@ const struct arch_syscall_def ppc64_syscall_table[] = { \
 	{ "eventfd", 307 },
 	{ "eventfd2", 314 },
 	{ "execve", 11 },
+	{ "execveat", 362 },
 	{ "exit", 1 },
 	{ "exit_group", 234 },
 	{ "faccessat", 298 },
 	{ "fadvise64", 233 },
-	{ "fadvise64_64", 254 },
+	{ "fadvise64_64", __PNR_fadvise64_64 },
 	{ "fallocate", 309 },
 	{ "fanotify_init", 323 },
 	{ "fanotify_mark", 324 },
@@ -95,7 +97,7 @@ const struct arch_syscall_def ppc64_syscall_table[] = { \
 	{ "fchown32", __PNR_fchown32 },
 	{ "fchownat", 289 },
 	{ "fcntl", 55 },
-	{ "fcntl64", 204 },
+	{ "fcntl64", __PNR_fcntl64 },
 	{ "fdatasync", 148 },
 	{ "fgetxattr", 214 },
 	{ "finit_module", 353 },
@@ -105,14 +107,14 @@ const struct arch_syscall_def ppc64_syscall_table[] = { \
 	{ "fremovexattr", 220 },
 	{ "fsetxattr", 211 },
 	{ "fstat", 108 },
-	{ "fstat64", 197 },
-	{ "fstatat64", 291 },
+	{ "fstat64", __PNR_fstat64 },
+	{ "fstatat64", __PNR_fstatat64 },
 	{ "fstatfs", 100 },
 	{ "fstatfs64", 253 },
 	{ "fsync", 118 },
 	{ "ftime", 35 },
 	{ "ftruncate", 93 },
-	{ "ftruncate64", 194 },
+	{ "ftruncate64", __PNR_ftruncate64 },
 	{ "futex", 221 },
 	{ "futimesat", 290 },
 	{ "get_kernel_syms", 130 },
@@ -191,7 +193,7 @@ const struct arch_syscall_def ppc64_syscall_table[] = { \
 	{ "lseek", 19 },
 	{ "lsetxattr", 210 },
 	{ "lstat", 107 },
-	{ "lstat64", 196 },
+	{ "lstat64", __PNR_lstat64 },
 	{ "madvise", 205 },
 	{ "mbind", 259 },
 	{ "memfd_create", 360 },
@@ -204,7 +206,7 @@ const struct arch_syscall_def ppc64_syscall_table[] = { \
 	{ "mlock", 150 },
 	{ "mlockall", 152 },
 	{ "mmap", 90 },
-	{ "mmap2", 192 },
+	{ "mmap2", __PNR_mmap2 },
 	{ "modify_ldt", 123 },
 	{ "mount", 21 },
 	{ "move_pages", 301 },
@@ -228,7 +230,7 @@ const struct arch_syscall_def ppc64_syscall_table[] = { \
 	{ "munmap", 91 },
 	{ "name_to_handle_at", 345 },
 	{ "nanosleep", 162 },
-	{ "newfstatat", __PNR_newfstatat },
+	{ "newfstatat", 291 },
 	{ "nfsservctl", 168 },
 	{ "nice", 34 },
 	{ "oldfstat", 28 },
@@ -315,7 +317,7 @@ const struct arch_syscall_def ppc64_syscall_table[] = { \
 	{ "semtimedop", __PNR_semtimedop },
 	{ "send", 334 },
 	{ "sendfile", 186 },
-	{ "sendfile64", 226 },
+	{ "sendfile64", __PNR_sendfile64 },
 	{ "sendmmsg", 349 },
 	{ "sendmsg", 341 },
 	{ "sendto", 335 },
@@ -375,7 +377,7 @@ const struct arch_syscall_def ppc64_syscall_table[] = { \
 	{ "spu_run", 278 },
 	{ "ssetmask", 69 },
 	{ "stat", 106 },
-	{ "stat64", 195 },
+	{ "stat64", __PNR_stat64 },
 	{ "statfs", 99 },
 	{ "statfs64", 252 },
 	{ "stime", 25 },
@@ -411,7 +413,7 @@ const struct arch_syscall_def ppc64_syscall_table[] = { \
 	{ "times", 43 },
 	{ "tkill", 208 },
 	{ "truncate", 92 },
-	{ "truncate64", 193 },
+	{ "truncate64", __PNR_truncate64 },
 	{ "tuxcall", 225 },
 	{ "ugetrlimit", 190 },
 	{ "ulimit", 58 },
diff --git a/src/arch-syscall-validate b/src/arch-syscall-validate
index eeb4d8b..e28b206 100755
--- a/src/arch-syscall-validate
+++ b/src/arch-syscall-validate
@@ -311,7 +311,7 @@ function dump_lib_mips64n32() {
 #  Dump the architecture's syscall table to stdout.
 #
 function dump_sys_ppc64() {
-	gcc -E -dM $1/arch/powerpc/include/uapi/asm/unistd.h | \
+	gcc -E -dM -D__powerpc64__ $1/arch/powerpc/include/uapi/asm/unistd.h | \
 		grep "^#define __NR_" | sort | \
 		sed -e 's/#define[ \t]\+__NR_\([a-z0-9_]\+\)[ \t]\+\([0-9]\+\)/\1\t\2/'
 }
-- 
2.3.5