diff options
author | 2023-02-19 17:22:00 -0300 | |
---|---|---|
committer | 2023-02-20 17:39:31 -0300 | |
commit | def30f6d1e6cbde702dfcf2150d65bdddc9ac75e (patch) | |
tree | 11680608747061e1af3450ba204a5886760accd0 /test/filters/namespaces.c | |
parent | docs: remove indents on top-level lists and tables (diff) | |
download | firejail-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/filters/namespaces.c')
-rw-r--r-- | test/filters/namespaces.c | 130 |
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 | ||
17 | static int usage() { | 17 | static 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 | ||
22 | static void die(const char *msg) { | 22 | static 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 | ||
27 | static int ns_flags(const char *list) { | 27 | static 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 | ||
62 | static int child(void *arg) { | 62 | static 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 | ||
69 | int main (int argc, char **argv) { | 69 | int 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 | } |