1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Sanitizers internally use some syscalls which non-SFI NaCl disallows.
6#if !defined(ADDRESS_SANITIZER) && !defined(THREAD_SANITIZER) && \
7    !defined(MEMORY_SANITIZER) && !defined(LEAK_SANITIZER)
8
9#include "components/nacl/loader/nonsfi/nonsfi_sandbox.h"
10
11#include <sys/syscall.h>
12#include <unistd.h>
13
14#include "sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h"
15#include "sandbox/linux/seccomp-bpf/bpf_tests.h"
16
17namespace {
18
19// Test cases in this file just make sure not-whitelisted syscalls
20// are appropriately disallowed. They should raise SIGSYS regardless
21// of arguments. We always pass five zeros not to pass uninitialized
22// values to syscalls.
23#define RESTRICT_SYSCALL_DEATH_TEST_IMPL(name, sysno)                        \
24  BPF_DEATH_TEST_C(NaClNonSfiSandboxSIGSYSTest,                              \
25                   name,                                                     \
26                   DEATH_MESSAGE(sandbox::GetErrorMessageContentForTests()), \
27                   nacl::nonsfi::NaClNonSfiBPFSandboxPolicy) {               \
28    syscall(sysno, 0, 0, 0, 0, 0, 0);                                        \
29  }
30
31#define RESTRICT_SYSCALL_DEATH_TEST(name)               \
32  RESTRICT_SYSCALL_DEATH_TEST_IMPL(name, __NR_ ## name)
33
34#define RESTRICT_ARM_SYSCALL_DEATH_TEST(name)           \
35  RESTRICT_SYSCALL_DEATH_TEST_IMPL(ARM_ ## name, __ARM_NR_ ## name)
36
37#if defined(__i386__) || defined(__arm__)
38RESTRICT_SYSCALL_DEATH_TEST(_newselect);
39#endif
40RESTRICT_SYSCALL_DEATH_TEST(_sysctl);
41#if defined(__x86_64__) || defined(__arm__)
42RESTRICT_SYSCALL_DEATH_TEST(accept);
43#endif
44#if defined(__x86_64__) || defined(__arm__)
45RESTRICT_SYSCALL_DEATH_TEST(accept4);
46#endif
47RESTRICT_SYSCALL_DEATH_TEST(access);
48RESTRICT_SYSCALL_DEATH_TEST(acct);
49RESTRICT_SYSCALL_DEATH_TEST(add_key);
50RESTRICT_SYSCALL_DEATH_TEST(adjtimex);
51#if defined(__i386__) || defined(__x86_64__)
52RESTRICT_SYSCALL_DEATH_TEST(afs_syscall);
53#endif
54#if defined(__i386__) || defined(__x86_64__)
55RESTRICT_SYSCALL_DEATH_TEST(alarm);
56#endif
57#if defined(__x86_64__)
58RESTRICT_SYSCALL_DEATH_TEST(arch_prctl);
59#endif
60#if defined(__arm__)
61RESTRICT_SYSCALL_DEATH_TEST(arm_fadvise64_64);
62#endif
63#if defined(__i386__) || defined(__arm__)
64RESTRICT_SYSCALL_DEATH_TEST(bdflush);
65#endif
66#if defined(__x86_64__) || defined(__arm__)
67RESTRICT_SYSCALL_DEATH_TEST(bind);
68#endif
69#if defined(__i386__)
70RESTRICT_SYSCALL_DEATH_TEST(break);
71#endif
72RESTRICT_SYSCALL_DEATH_TEST(capget);
73RESTRICT_SYSCALL_DEATH_TEST(capset);
74RESTRICT_SYSCALL_DEATH_TEST(chdir);
75RESTRICT_SYSCALL_DEATH_TEST(chmod);
76RESTRICT_SYSCALL_DEATH_TEST(chown);
77#if defined(__i386__) || defined(__arm__)
78RESTRICT_SYSCALL_DEATH_TEST(chown32);
79#endif
80RESTRICT_SYSCALL_DEATH_TEST(chroot);
81RESTRICT_SYSCALL_DEATH_TEST(clock_adjtime);
82RESTRICT_SYSCALL_DEATH_TEST(clock_nanosleep);
83RESTRICT_SYSCALL_DEATH_TEST(clock_settime);
84#if defined(__x86_64__) || defined(__arm__)
85RESTRICT_SYSCALL_DEATH_TEST(connect);
86#endif
87RESTRICT_SYSCALL_DEATH_TEST(creat);
88#if defined(__i386__) || defined(__x86_64__)
89RESTRICT_SYSCALL_DEATH_TEST(create_module);
90#endif
91RESTRICT_SYSCALL_DEATH_TEST(delete_module);
92RESTRICT_SYSCALL_DEATH_TEST(dup3);
93RESTRICT_SYSCALL_DEATH_TEST(epoll_create1);
94RESTRICT_SYSCALL_DEATH_TEST(epoll_ctl);
95#if defined(__x86_64__)
96RESTRICT_SYSCALL_DEATH_TEST(epoll_ctl_old);
97#endif
98RESTRICT_SYSCALL_DEATH_TEST(epoll_pwait);
99RESTRICT_SYSCALL_DEATH_TEST(epoll_wait);
100#if defined(__x86_64__)
101RESTRICT_SYSCALL_DEATH_TEST(epoll_wait_old);
102#endif
103RESTRICT_SYSCALL_DEATH_TEST(eventfd);
104RESTRICT_SYSCALL_DEATH_TEST(eventfd2);
105RESTRICT_SYSCALL_DEATH_TEST(execve);
106RESTRICT_SYSCALL_DEATH_TEST(faccessat);
107#if defined(__i386__) || defined(__x86_64__)
108RESTRICT_SYSCALL_DEATH_TEST(fadvise64);
109#endif
110#if defined(__i386__)
111RESTRICT_SYSCALL_DEATH_TEST(fadvise64_64);
112#endif
113RESTRICT_SYSCALL_DEATH_TEST(fallocate);
114RESTRICT_SYSCALL_DEATH_TEST(fanotify_init);
115RESTRICT_SYSCALL_DEATH_TEST(fanotify_mark);
116RESTRICT_SYSCALL_DEATH_TEST(fchdir);
117RESTRICT_SYSCALL_DEATH_TEST(fchmod);
118RESTRICT_SYSCALL_DEATH_TEST(fchmodat);
119RESTRICT_SYSCALL_DEATH_TEST(fchown);
120#if defined(__i386__) || defined(__arm__)
121RESTRICT_SYSCALL_DEATH_TEST(fchown32);
122#endif
123RESTRICT_SYSCALL_DEATH_TEST(fchownat);
124#if defined(__i386__) || defined(__arm__)
125RESTRICT_SYSCALL_DEATH_TEST(fcntl);
126#endif
127RESTRICT_SYSCALL_DEATH_TEST(fdatasync);
128RESTRICT_SYSCALL_DEATH_TEST(fgetxattr);
129RESTRICT_SYSCALL_DEATH_TEST(flistxattr);
130RESTRICT_SYSCALL_DEATH_TEST(flock);
131RESTRICT_SYSCALL_DEATH_TEST(fork);
132RESTRICT_SYSCALL_DEATH_TEST(fremovexattr);
133RESTRICT_SYSCALL_DEATH_TEST(fsetxattr);
134#if defined(__i386__) || defined(__arm__)
135RESTRICT_SYSCALL_DEATH_TEST(fstat);
136#endif
137#if defined(__i386__) || defined(__arm__)
138RESTRICT_SYSCALL_DEATH_TEST(fstatat64);
139#endif
140RESTRICT_SYSCALL_DEATH_TEST(fstatfs);
141#if defined(__i386__) || defined(__arm__)
142RESTRICT_SYSCALL_DEATH_TEST(fstatfs64);
143#endif
144RESTRICT_SYSCALL_DEATH_TEST(fsync);
145#if defined(__i386__)
146RESTRICT_SYSCALL_DEATH_TEST(ftime);
147#endif
148RESTRICT_SYSCALL_DEATH_TEST(ftruncate);
149#if defined(__i386__) || defined(__arm__)
150RESTRICT_SYSCALL_DEATH_TEST(ftruncate64);
151#endif
152RESTRICT_SYSCALL_DEATH_TEST(futimesat);
153#if defined(__i386__) || defined(__x86_64__)
154RESTRICT_SYSCALL_DEATH_TEST(get_kernel_syms);
155#endif
156RESTRICT_SYSCALL_DEATH_TEST(get_mempolicy);
157RESTRICT_SYSCALL_DEATH_TEST(get_robust_list);
158#if defined(__i386__) || defined(__x86_64__)
159RESTRICT_SYSCALL_DEATH_TEST(get_thread_area);
160#endif
161RESTRICT_SYSCALL_DEATH_TEST(getcpu);
162RESTRICT_SYSCALL_DEATH_TEST(getcwd);
163RESTRICT_SYSCALL_DEATH_TEST(getdents);
164RESTRICT_SYSCALL_DEATH_TEST(getdents64);
165RESTRICT_SYSCALL_DEATH_TEST(getgroups);
166#if defined(__i386__) || defined(__arm__)
167RESTRICT_SYSCALL_DEATH_TEST(getgroups32);
168#endif
169RESTRICT_SYSCALL_DEATH_TEST(getitimer);
170#if defined(__x86_64__) || defined(__arm__)
171RESTRICT_SYSCALL_DEATH_TEST(getpeername);
172#endif
173RESTRICT_SYSCALL_DEATH_TEST(getpgid);
174RESTRICT_SYSCALL_DEATH_TEST(getpgrp);
175RESTRICT_SYSCALL_DEATH_TEST(getpid);
176#if defined(__i386__) || defined(__x86_64__)
177RESTRICT_SYSCALL_DEATH_TEST(getpmsg);
178#endif
179RESTRICT_SYSCALL_DEATH_TEST(getppid);
180RESTRICT_SYSCALL_DEATH_TEST(getpriority);
181RESTRICT_SYSCALL_DEATH_TEST(getresgid);
182#if defined(__i386__) || defined(__arm__)
183RESTRICT_SYSCALL_DEATH_TEST(getresgid32);
184#endif
185RESTRICT_SYSCALL_DEATH_TEST(getresuid);
186#if defined(__i386__) || defined(__arm__)
187RESTRICT_SYSCALL_DEATH_TEST(getresuid32);
188#endif
189#if defined(__i386__) || defined(__x86_64__)
190RESTRICT_SYSCALL_DEATH_TEST(getrlimit);
191#endif
192RESTRICT_SYSCALL_DEATH_TEST(getrusage);
193RESTRICT_SYSCALL_DEATH_TEST(getsid);
194#if defined(__x86_64__) || defined(__arm__)
195RESTRICT_SYSCALL_DEATH_TEST(getsockname);
196#endif
197#if defined(__x86_64__) || defined(__arm__)
198RESTRICT_SYSCALL_DEATH_TEST(getsockopt);
199#endif
200RESTRICT_SYSCALL_DEATH_TEST(getxattr);
201#if defined(__i386__)
202RESTRICT_SYSCALL_DEATH_TEST(gtty);
203#endif
204#if defined(__i386__)
205RESTRICT_SYSCALL_DEATH_TEST(idle);
206#endif
207RESTRICT_SYSCALL_DEATH_TEST(init_module);
208RESTRICT_SYSCALL_DEATH_TEST(inotify_add_watch);
209RESTRICT_SYSCALL_DEATH_TEST(inotify_init);
210RESTRICT_SYSCALL_DEATH_TEST(inotify_init1);
211RESTRICT_SYSCALL_DEATH_TEST(inotify_rm_watch);
212RESTRICT_SYSCALL_DEATH_TEST(io_cancel);
213RESTRICT_SYSCALL_DEATH_TEST(io_destroy);
214RESTRICT_SYSCALL_DEATH_TEST(io_getevents);
215RESTRICT_SYSCALL_DEATH_TEST(io_setup);
216RESTRICT_SYSCALL_DEATH_TEST(io_submit);
217RESTRICT_SYSCALL_DEATH_TEST(ioctl);
218#if defined(__i386__) || defined(__x86_64__)
219RESTRICT_SYSCALL_DEATH_TEST(ioperm);
220#endif
221#if defined(__i386__) || defined(__x86_64__)
222RESTRICT_SYSCALL_DEATH_TEST(iopl);
223#endif
224RESTRICT_SYSCALL_DEATH_TEST(ioprio_get);
225RESTRICT_SYSCALL_DEATH_TEST(ioprio_set);
226#if defined(__i386__)
227RESTRICT_SYSCALL_DEATH_TEST(ipc);
228#endif
229RESTRICT_SYSCALL_DEATH_TEST(kexec_load);
230RESTRICT_SYSCALL_DEATH_TEST(keyctl);
231RESTRICT_SYSCALL_DEATH_TEST(kill);
232RESTRICT_SYSCALL_DEATH_TEST(lchown);
233#if defined(__i386__) || defined(__arm__)
234RESTRICT_SYSCALL_DEATH_TEST(lchown32);
235#endif
236RESTRICT_SYSCALL_DEATH_TEST(lgetxattr);
237RESTRICT_SYSCALL_DEATH_TEST(link);
238RESTRICT_SYSCALL_DEATH_TEST(linkat);
239#if defined(__x86_64__) || defined(__arm__)
240RESTRICT_SYSCALL_DEATH_TEST(listen);
241#endif
242RESTRICT_SYSCALL_DEATH_TEST(listxattr);
243RESTRICT_SYSCALL_DEATH_TEST(llistxattr);
244#if defined(__i386__)
245RESTRICT_SYSCALL_DEATH_TEST(lock);
246#endif
247RESTRICT_SYSCALL_DEATH_TEST(lookup_dcookie);
248RESTRICT_SYSCALL_DEATH_TEST(lremovexattr);
249#if defined(__i386__) || defined(__arm__)
250RESTRICT_SYSCALL_DEATH_TEST(lseek);
251#endif
252RESTRICT_SYSCALL_DEATH_TEST(lsetxattr);
253RESTRICT_SYSCALL_DEATH_TEST(lstat);
254#if defined(__i386__) || defined(__arm__)
255RESTRICT_SYSCALL_DEATH_TEST(lstat64);
256#endif
257RESTRICT_SYSCALL_DEATH_TEST(mbind);
258#if defined(__i386__) || defined(__x86_64__)
259RESTRICT_SYSCALL_DEATH_TEST(migrate_pages);
260#endif
261RESTRICT_SYSCALL_DEATH_TEST(mincore);
262RESTRICT_SYSCALL_DEATH_TEST(mkdir);
263RESTRICT_SYSCALL_DEATH_TEST(mkdirat);
264RESTRICT_SYSCALL_DEATH_TEST(mknod);
265RESTRICT_SYSCALL_DEATH_TEST(mknodat);
266RESTRICT_SYSCALL_DEATH_TEST(mlock);
267RESTRICT_SYSCALL_DEATH_TEST(mlockall);
268#if defined(__i386__)
269RESTRICT_SYSCALL_DEATH_TEST(mmap);
270#endif
271#if defined(__i386__) || defined(__x86_64__)
272RESTRICT_SYSCALL_DEATH_TEST(modify_ldt);
273#endif
274RESTRICT_SYSCALL_DEATH_TEST(mount);
275RESTRICT_SYSCALL_DEATH_TEST(move_pages);
276#if defined(__i386__)
277RESTRICT_SYSCALL_DEATH_TEST(mpx);
278#endif
279RESTRICT_SYSCALL_DEATH_TEST(mq_getsetattr);
280RESTRICT_SYSCALL_DEATH_TEST(mq_notify);
281RESTRICT_SYSCALL_DEATH_TEST(mq_open);
282RESTRICT_SYSCALL_DEATH_TEST(mq_timedreceive);
283RESTRICT_SYSCALL_DEATH_TEST(mq_timedsend);
284RESTRICT_SYSCALL_DEATH_TEST(mq_unlink);
285RESTRICT_SYSCALL_DEATH_TEST(mremap);
286#if defined(__x86_64__) || defined(__arm__)
287RESTRICT_SYSCALL_DEATH_TEST(msgctl);
288#endif
289#if defined(__x86_64__) || defined(__arm__)
290RESTRICT_SYSCALL_DEATH_TEST(msgget);
291#endif
292#if defined(__x86_64__) || defined(__arm__)
293RESTRICT_SYSCALL_DEATH_TEST(msgrcv);
294#endif
295#if defined(__x86_64__) || defined(__arm__)
296RESTRICT_SYSCALL_DEATH_TEST(msgsnd);
297#endif
298RESTRICT_SYSCALL_DEATH_TEST(msync);
299RESTRICT_SYSCALL_DEATH_TEST(munlock);
300RESTRICT_SYSCALL_DEATH_TEST(munlockall);
301RESTRICT_SYSCALL_DEATH_TEST(name_to_handle_at);
302#if defined(__x86_64__)
303RESTRICT_SYSCALL_DEATH_TEST(newfstatat);
304#endif
305RESTRICT_SYSCALL_DEATH_TEST(nfsservctl);
306#if defined(__i386__) || defined(__arm__)
307RESTRICT_SYSCALL_DEATH_TEST(nice);
308#endif
309#if defined(__i386__)
310RESTRICT_SYSCALL_DEATH_TEST(oldfstat);
311#endif
312#if defined(__i386__)
313RESTRICT_SYSCALL_DEATH_TEST(oldlstat);
314#endif
315#if defined(__i386__)
316RESTRICT_SYSCALL_DEATH_TEST(oldolduname);
317#endif
318#if defined(__i386__)
319RESTRICT_SYSCALL_DEATH_TEST(oldstat);
320#endif
321#if defined(__i386__)
322RESTRICT_SYSCALL_DEATH_TEST(olduname);
323#endif
324RESTRICT_SYSCALL_DEATH_TEST(open_by_handle_at);
325RESTRICT_SYSCALL_DEATH_TEST(pause);
326#if defined(__arm__)
327RESTRICT_SYSCALL_DEATH_TEST(pciconfig_iobase);
328#endif
329#if defined(__arm__)
330RESTRICT_SYSCALL_DEATH_TEST(pciconfig_read);
331#endif
332#if defined(__arm__)
333RESTRICT_SYSCALL_DEATH_TEST(pciconfig_write);
334#endif
335RESTRICT_SYSCALL_DEATH_TEST(perf_event_open);
336RESTRICT_SYSCALL_DEATH_TEST(personality);
337RESTRICT_SYSCALL_DEATH_TEST(pipe2);
338RESTRICT_SYSCALL_DEATH_TEST(pivot_root);
339RESTRICT_SYSCALL_DEATH_TEST(ppoll);
340RESTRICT_SYSCALL_DEATH_TEST(preadv);
341RESTRICT_SYSCALL_DEATH_TEST(prlimit64);
342RESTRICT_SYSCALL_DEATH_TEST(process_vm_readv);
343RESTRICT_SYSCALL_DEATH_TEST(process_vm_writev);
344#if defined(__i386__)
345RESTRICT_SYSCALL_DEATH_TEST(prof);
346#endif
347#if defined(__i386__)
348RESTRICT_SYSCALL_DEATH_TEST(profil);
349#endif
350RESTRICT_SYSCALL_DEATH_TEST(pselect6);
351#if defined(__i386__) || defined(__x86_64__)
352RESTRICT_SYSCALL_DEATH_TEST(putpmsg);
353#endif
354RESTRICT_SYSCALL_DEATH_TEST(pwritev);
355#if defined(__i386__) || defined(__x86_64__)
356RESTRICT_SYSCALL_DEATH_TEST(query_module);
357#endif
358RESTRICT_SYSCALL_DEATH_TEST(quotactl);
359RESTRICT_SYSCALL_DEATH_TEST(readahead);
360#if defined(__i386__)
361RESTRICT_SYSCALL_DEATH_TEST(readdir);
362#endif
363RESTRICT_SYSCALL_DEATH_TEST(readlink);
364RESTRICT_SYSCALL_DEATH_TEST(readlinkat);
365RESTRICT_SYSCALL_DEATH_TEST(readv);
366RESTRICT_SYSCALL_DEATH_TEST(reboot);
367#if defined(__arm__)
368RESTRICT_SYSCALL_DEATH_TEST(recv);
369#endif
370#if defined(__x86_64__) || defined(__arm__)
371RESTRICT_SYSCALL_DEATH_TEST(recvfrom);
372#endif
373RESTRICT_SYSCALL_DEATH_TEST(recvmmsg);
374RESTRICT_SYSCALL_DEATH_TEST(remap_file_pages);
375RESTRICT_SYSCALL_DEATH_TEST(removexattr);
376RESTRICT_SYSCALL_DEATH_TEST(rename);
377RESTRICT_SYSCALL_DEATH_TEST(renameat);
378RESTRICT_SYSCALL_DEATH_TEST(request_key);
379RESTRICT_SYSCALL_DEATH_TEST(rmdir);
380RESTRICT_SYSCALL_DEATH_TEST(rt_sigaction);
381RESTRICT_SYSCALL_DEATH_TEST(rt_sigpending);
382RESTRICT_SYSCALL_DEATH_TEST(rt_sigprocmask);
383RESTRICT_SYSCALL_DEATH_TEST(rt_sigqueueinfo);
384RESTRICT_SYSCALL_DEATH_TEST(rt_sigreturn);
385RESTRICT_SYSCALL_DEATH_TEST(rt_sigsuspend);
386RESTRICT_SYSCALL_DEATH_TEST(rt_sigtimedwait);
387RESTRICT_SYSCALL_DEATH_TEST(rt_tgsigqueueinfo);
388RESTRICT_SYSCALL_DEATH_TEST(sched_get_priority_max);
389RESTRICT_SYSCALL_DEATH_TEST(sched_get_priority_min);
390RESTRICT_SYSCALL_DEATH_TEST(sched_getaffinity);
391RESTRICT_SYSCALL_DEATH_TEST(sched_getparam);
392RESTRICT_SYSCALL_DEATH_TEST(sched_getscheduler);
393RESTRICT_SYSCALL_DEATH_TEST(sched_rr_get_interval);
394RESTRICT_SYSCALL_DEATH_TEST(sched_setaffinity);
395RESTRICT_SYSCALL_DEATH_TEST(sched_setparam);
396RESTRICT_SYSCALL_DEATH_TEST(sched_setscheduler);
397#if defined(__x86_64__)
398RESTRICT_SYSCALL_DEATH_TEST(security);
399#endif
400#if defined(__i386__) || defined(__x86_64__)
401RESTRICT_SYSCALL_DEATH_TEST(select);
402#endif
403#if defined(__x86_64__) || defined(__arm__)
404RESTRICT_SYSCALL_DEATH_TEST(semctl);
405#endif
406#if defined(__x86_64__) || defined(__arm__)
407RESTRICT_SYSCALL_DEATH_TEST(semget);
408#endif
409#if defined(__x86_64__) || defined(__arm__)
410RESTRICT_SYSCALL_DEATH_TEST(semop);
411#endif
412#if defined(__x86_64__) || defined(__arm__)
413RESTRICT_SYSCALL_DEATH_TEST(semtimedop);
414#endif
415#if defined(__arm__)
416RESTRICT_SYSCALL_DEATH_TEST(send);
417#endif
418RESTRICT_SYSCALL_DEATH_TEST(sendfile);
419#if defined(__i386__) || defined(__arm__)
420RESTRICT_SYSCALL_DEATH_TEST(sendfile64);
421#endif
422RESTRICT_SYSCALL_DEATH_TEST(sendmmsg);
423#if defined(__x86_64__) || defined(__arm__)
424RESTRICT_SYSCALL_DEATH_TEST(sendto);
425#endif
426RESTRICT_SYSCALL_DEATH_TEST(set_mempolicy);
427#if defined(__i386__) || defined(__x86_64__)
428RESTRICT_SYSCALL_DEATH_TEST(set_thread_area);
429#endif
430RESTRICT_SYSCALL_DEATH_TEST(set_tid_address);
431RESTRICT_SYSCALL_DEATH_TEST(setdomainname);
432RESTRICT_SYSCALL_DEATH_TEST(setfsgid);
433#if defined(__i386__) || defined(__arm__)
434RESTRICT_SYSCALL_DEATH_TEST(setfsgid32);
435#endif
436RESTRICT_SYSCALL_DEATH_TEST(setfsuid);
437#if defined(__i386__) || defined(__arm__)
438RESTRICT_SYSCALL_DEATH_TEST(setfsuid32);
439#endif
440RESTRICT_SYSCALL_DEATH_TEST(setgid);
441#if defined(__i386__) || defined(__arm__)
442RESTRICT_SYSCALL_DEATH_TEST(setgid32);
443#endif
444RESTRICT_SYSCALL_DEATH_TEST(setgroups);
445#if defined(__i386__) || defined(__arm__)
446RESTRICT_SYSCALL_DEATH_TEST(setgroups32);
447#endif
448RESTRICT_SYSCALL_DEATH_TEST(sethostname);
449RESTRICT_SYSCALL_DEATH_TEST(setitimer);
450RESTRICT_SYSCALL_DEATH_TEST(setns);
451RESTRICT_SYSCALL_DEATH_TEST(setpgid);
452RESTRICT_SYSCALL_DEATH_TEST(setpriority);
453RESTRICT_SYSCALL_DEATH_TEST(setregid);
454#if defined(__i386__) || defined(__arm__)
455RESTRICT_SYSCALL_DEATH_TEST(setregid32);
456#endif
457RESTRICT_SYSCALL_DEATH_TEST(setresgid);
458#if defined(__i386__) || defined(__arm__)
459RESTRICT_SYSCALL_DEATH_TEST(setresgid32);
460#endif
461RESTRICT_SYSCALL_DEATH_TEST(setresuid);
462#if defined(__i386__) || defined(__arm__)
463RESTRICT_SYSCALL_DEATH_TEST(setresuid32);
464#endif
465RESTRICT_SYSCALL_DEATH_TEST(setreuid);
466#if defined(__i386__) || defined(__arm__)
467RESTRICT_SYSCALL_DEATH_TEST(setreuid32);
468#endif
469RESTRICT_SYSCALL_DEATH_TEST(setrlimit);
470RESTRICT_SYSCALL_DEATH_TEST(setsid);
471#if defined(__x86_64__) || defined(__arm__)
472RESTRICT_SYSCALL_DEATH_TEST(setsockopt);
473#endif
474RESTRICT_SYSCALL_DEATH_TEST(settimeofday);
475RESTRICT_SYSCALL_DEATH_TEST(setuid);
476#if defined(__i386__) || defined(__arm__)
477RESTRICT_SYSCALL_DEATH_TEST(setuid32);
478#endif
479RESTRICT_SYSCALL_DEATH_TEST(setxattr);
480#if defined(__i386__)
481RESTRICT_SYSCALL_DEATH_TEST(sgetmask);
482#endif
483#if defined(__x86_64__) || defined(__arm__)
484RESTRICT_SYSCALL_DEATH_TEST(shmat);
485#endif
486#if defined(__x86_64__) || defined(__arm__)
487RESTRICT_SYSCALL_DEATH_TEST(shmctl);
488#endif
489#if defined(__x86_64__) || defined(__arm__)
490RESTRICT_SYSCALL_DEATH_TEST(shmdt);
491#endif
492#if defined(__x86_64__) || defined(__arm__)
493RESTRICT_SYSCALL_DEATH_TEST(shmget);
494#endif
495#if defined(__i386__) || defined(__arm__)
496RESTRICT_SYSCALL_DEATH_TEST(sigaction);
497#endif
498#if defined(__i386__)
499RESTRICT_SYSCALL_DEATH_TEST(signal);
500#endif
501RESTRICT_SYSCALL_DEATH_TEST(signalfd);
502RESTRICT_SYSCALL_DEATH_TEST(signalfd4);
503#if defined(__i386__) || defined(__arm__)
504RESTRICT_SYSCALL_DEATH_TEST(sigpending);
505#endif
506#if defined(__i386__) || defined(__arm__)
507RESTRICT_SYSCALL_DEATH_TEST(sigprocmask);
508#endif
509#if defined(__i386__) || defined(__arm__)
510RESTRICT_SYSCALL_DEATH_TEST(sigreturn);
511#endif
512#if defined(__i386__) || defined(__arm__)
513RESTRICT_SYSCALL_DEATH_TEST(sigsuspend);
514#endif
515#if defined(__x86_64__) || defined(__arm__)
516RESTRICT_SYSCALL_DEATH_TEST(socket);
517#endif
518RESTRICT_SYSCALL_DEATH_TEST(splice);
519#if defined(__i386__)
520RESTRICT_SYSCALL_DEATH_TEST(ssetmask);
521#endif
522RESTRICT_SYSCALL_DEATH_TEST(stat);
523#if defined(__i386__) || defined(__arm__)
524RESTRICT_SYSCALL_DEATH_TEST(stat64);
525#endif
526RESTRICT_SYSCALL_DEATH_TEST(statfs);
527#if defined(__i386__) || defined(__arm__)
528RESTRICT_SYSCALL_DEATH_TEST(statfs64);
529#endif
530#if defined(__i386__)
531RESTRICT_SYSCALL_DEATH_TEST(stime);
532#endif
533#if defined(__i386__)
534RESTRICT_SYSCALL_DEATH_TEST(stty);
535#endif
536RESTRICT_SYSCALL_DEATH_TEST(swapoff);
537RESTRICT_SYSCALL_DEATH_TEST(swapon);
538RESTRICT_SYSCALL_DEATH_TEST(symlink);
539RESTRICT_SYSCALL_DEATH_TEST(symlinkat);
540RESTRICT_SYSCALL_DEATH_TEST(sync);
541#if defined(__i386__) || defined(__x86_64__)
542RESTRICT_SYSCALL_DEATH_TEST(sync_file_range);
543#endif
544#if defined(__arm__)
545RESTRICT_SYSCALL_DEATH_TEST(sync_file_range2);
546#endif
547RESTRICT_SYSCALL_DEATH_TEST(syncfs);
548RESTRICT_SYSCALL_DEATH_TEST(sysfs);
549RESTRICT_SYSCALL_DEATH_TEST(sysinfo);
550RESTRICT_SYSCALL_DEATH_TEST(syslog);
551RESTRICT_SYSCALL_DEATH_TEST(tee);
552RESTRICT_SYSCALL_DEATH_TEST(tgkill);
553RESTRICT_SYSCALL_DEATH_TEST(timer_create);
554RESTRICT_SYSCALL_DEATH_TEST(timer_delete);
555RESTRICT_SYSCALL_DEATH_TEST(timer_getoverrun);
556RESTRICT_SYSCALL_DEATH_TEST(timer_gettime);
557RESTRICT_SYSCALL_DEATH_TEST(timer_settime);
558RESTRICT_SYSCALL_DEATH_TEST(timerfd_create);
559RESTRICT_SYSCALL_DEATH_TEST(timerfd_gettime);
560RESTRICT_SYSCALL_DEATH_TEST(timerfd_settime);
561RESTRICT_SYSCALL_DEATH_TEST(tkill);
562RESTRICT_SYSCALL_DEATH_TEST(truncate);
563#if defined(__i386__) || defined(__arm__)
564RESTRICT_SYSCALL_DEATH_TEST(truncate64);
565#endif
566#if defined(__x86_64__)
567RESTRICT_SYSCALL_DEATH_TEST(tuxcall);
568#endif
569#if defined(__i386__) || defined(__arm__)
570RESTRICT_SYSCALL_DEATH_TEST(ugetrlimit);
571#endif
572#if defined(__i386__)
573RESTRICT_SYSCALL_DEATH_TEST(ulimit);
574#endif
575RESTRICT_SYSCALL_DEATH_TEST(umask);
576#if defined(__i386__)
577RESTRICT_SYSCALL_DEATH_TEST(umount);
578#endif
579RESTRICT_SYSCALL_DEATH_TEST(umount2);
580RESTRICT_SYSCALL_DEATH_TEST(uname);
581RESTRICT_SYSCALL_DEATH_TEST(unlink);
582RESTRICT_SYSCALL_DEATH_TEST(unlinkat);
583RESTRICT_SYSCALL_DEATH_TEST(unshare);
584RESTRICT_SYSCALL_DEATH_TEST(uselib);
585RESTRICT_SYSCALL_DEATH_TEST(ustat);
586#if defined(__i386__) || defined(__x86_64__)
587RESTRICT_SYSCALL_DEATH_TEST(utime);
588#endif
589RESTRICT_SYSCALL_DEATH_TEST(utimensat);
590RESTRICT_SYSCALL_DEATH_TEST(utimes);
591RESTRICT_SYSCALL_DEATH_TEST(vfork);
592RESTRICT_SYSCALL_DEATH_TEST(vhangup);
593#if defined(__i386__)
594RESTRICT_SYSCALL_DEATH_TEST(vm86);
595#endif
596#if defined(__i386__)
597RESTRICT_SYSCALL_DEATH_TEST(vm86old);
598#endif
599RESTRICT_SYSCALL_DEATH_TEST(vmsplice);
600RESTRICT_SYSCALL_DEATH_TEST(vserver);
601RESTRICT_SYSCALL_DEATH_TEST(wait4);
602RESTRICT_SYSCALL_DEATH_TEST(waitid);
603#if defined(__i386__)
604RESTRICT_SYSCALL_DEATH_TEST(waitpid);
605#endif
606RESTRICT_SYSCALL_DEATH_TEST(writev);
607
608// ARM specific syscalls.
609#if defined(__arm__)
610RESTRICT_ARM_SYSCALL_DEATH_TEST(breakpoint);
611RESTRICT_ARM_SYSCALL_DEATH_TEST(usr26);
612RESTRICT_ARM_SYSCALL_DEATH_TEST(usr32);
613RESTRICT_ARM_SYSCALL_DEATH_TEST(set_tls);
614#endif
615
616}  // namespace
617
618#endif  // !ADDRESS_SANITIZER && !THREAD_SANITIZER &&
619        // !MEMORY_SANITIZER && !LEAK_SANITIZER
620