aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorLibravatar Kelvin M. Klann <kmk3.code@protonmail.com>2023-02-19 17:22:00 -0300
committerLibravatar Kelvin M. Klann <kmk3.code@protonmail.com>2023-02-20 17:39:31 -0300
commitdef30f6d1e6cbde702dfcf2150d65bdddc9ac75e (patch)
tree11680608747061e1af3450ba204a5886760accd0 /test
parentdocs: remove indents on top-level lists and tables (diff)
downloadfirejail-def30f6d1e6cbde702dfcf2150d65bdddc9ac75e.tar.gz
firejail-def30f6d1e6cbde702dfcf2150d65bdddc9ac75e.tar.zst
firejail-def30f6d1e6cbde702dfcf2150d65bdddc9ac75e.zip
test/filters/namespaces.c: use tabs for indentation
This appears to be the only C file in the repository that uses spaces for indentation. Commands used to check for the above: $ git grep '^ ' -- '*.c' '*.h' Commands used to search and replace: $ f=test/filters/namespaces.c; printf '%s\n' \ "$(sed 's/ /\t/g' "$f")" >"$f" Note: The mmap call was aligned manually. Added on commit 5116c1ced ("testing", 2022-12-24).
Diffstat (limited to 'test')
-rw-r--r--test/filters/namespaces.c130
1 files changed, 65 insertions, 65 deletions
diff --git a/test/filters/namespaces.c b/test/filters/namespaces.c
index 06dfa4edf..ecf0fdcd1 100644
--- a/test/filters/namespaces.c
+++ b/test/filters/namespaces.c
@@ -15,82 +15,82 @@
15#define STACK_SIZE 1024 * 1024 15#define STACK_SIZE 1024 * 1024
16 16
17static int usage() { 17static int usage() {
18 fprintf(stderr, "Usage: namespaces <system call>[clone,unshare] <list of namespaces>[cgroup,ipc,mnt,net,pid,time,user,uts]\n"); 18 fprintf(stderr, "Usage: namespaces <system call>[clone,unshare] <list of namespaces>[cgroup,ipc,mnt,net,pid,time,user,uts]\n");
19 exit(1); 19 exit(1);
20} 20}
21 21
22static void die(const char *msg) { 22static void die(const char *msg) {
23 fprintf(stderr, "Error: %s: %s\n", msg, strerror(errno)); 23 fprintf(stderr, "Error: %s: %s\n", msg, strerror(errno));
24 exit(1); 24 exit(1);
25} 25}
26 26
27static int ns_flags(const char *list) { 27static int ns_flags(const char *list) {
28 int flags = 0; 28 int flags = 0;
29 29
30 char *dup = strdup(list); 30 char *dup = strdup(list);
31 if (!dup) 31 if (!dup)
32 die("cannot allocate memory"); 32 die("cannot allocate memory");
33 33
34 char *token = strtok(dup, ","); 34 char *token = strtok(dup, ",");
35 while (token) { 35 while (token) {
36 if (strcmp(token, "cgroup") == 0) 36 if (strcmp(token, "cgroup") == 0)
37 flags |= CLONE_NEWCGROUP; 37 flags |= CLONE_NEWCGROUP;
38 else if (strcmp(token, "ipc") == 0) 38 else if (strcmp(token, "ipc") == 0)
39 flags |= CLONE_NEWIPC; 39 flags |= CLONE_NEWIPC;
40 else if (strcmp(token, "net") == 0) 40 else if (strcmp(token, "net") == 0)
41 flags |= CLONE_NEWNET; 41 flags |= CLONE_NEWNET;
42 else if (strcmp(token, "mnt") == 0) 42 else if (strcmp(token, "mnt") == 0)
43 flags |= CLONE_NEWNS; 43 flags |= CLONE_NEWNS;
44 else if (strcmp(token, "pid") == 0) 44 else if (strcmp(token, "pid") == 0)
45 flags |= CLONE_NEWPID; 45 flags |= CLONE_NEWPID;
46 else if (strcmp(token, "time") == 0) 46 else if (strcmp(token, "time") == 0)
47 flags |= CLONE_NEWTIME; 47 flags |= CLONE_NEWTIME;
48 else if (strcmp(token, "user") == 0) 48 else if (strcmp(token, "user") == 0)
49 flags |= CLONE_NEWUSER; 49 flags |= CLONE_NEWUSER;
50 else if (strcmp(token, "uts") == 0) 50 else if (strcmp(token, "uts") == 0)
51 flags |= CLONE_NEWUTS; 51 flags |= CLONE_NEWUTS;
52 else 52 else
53 usage(); 53 usage();
54 54
55 token = strtok(NULL, ","); 55 token = strtok(NULL, ",");
56 } 56 }
57 57
58 free(dup); 58 free(dup);
59 return flags; 59 return flags;
60} 60}
61 61
62static int child(void *arg) { 62static int child(void *arg) {
63 (void) arg; 63 (void) arg;
64 64
65 fprintf(stderr, "clone successful\n"); 65 fprintf(stderr, "clone successful\n");
66 return 0; 66 return 0;
67} 67}
68 68
69int main (int argc, char **argv) { 69int main (int argc, char **argv) {
70 if (argc != 3) 70 if (argc != 3)
71 usage(); 71 usage();
72 72
73 int flags = ns_flags(argv[2]); 73 int flags = ns_flags(argv[2]);
74 if (getuid() != 0) 74 if (getuid() != 0)
75 flags |= CLONE_NEWUSER; 75 flags |= CLONE_NEWUSER;
76 76
77 if (strcmp(argv[1], "clone") == 0) { 77 if (strcmp(argv[1], "clone") == 0) {
78 void *stack = mmap(NULL, STACK_SIZE, PROT_READ | PROT_WRITE, 78 void *stack = mmap(NULL, STACK_SIZE, PROT_READ | PROT_WRITE,
79 MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); 79 MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
80 if (stack == MAP_FAILED) 80 if (stack == MAP_FAILED)
81 die("mmap"); 81 die("mmap");
82 82
83 if (clone(child, stack + STACK_SIZE, flags | SIGCHLD, NULL) < 0) 83 if (clone(child, stack + STACK_SIZE, flags | SIGCHLD, NULL) < 0)
84 die("clone"); 84 die("clone");
85 } 85 }
86 else if (strcmp(argv[1], "unshare") == 0) { 86 else if (strcmp(argv[1], "unshare") == 0) {
87 if (unshare(flags)) 87 if (unshare(flags))
88 die("unshare"); 88 die("unshare");
89 89
90 fprintf(stderr, "unshare successful\n"); 90 fprintf(stderr, "unshare successful\n");
91 } 91 }
92 else 92 else
93 usage(); 93 usage();
94 94
95 return 0; 95 return 0;
96} 96}