aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--etc/slack.profile2
-rwxr-xr-xgcov.sh5
-rw-r--r--src/fldd/main.c5
-rwxr-xr-xtest/fs/fs.sh3
-rwxr-xr-xtest/fs/private-lib.exp44
-rwxr-xr-xtest/root/checkcfg.exp14
-rwxr-xr-xtest/root/firecfg.exp40
-rwxr-xr-xtest/root/seccomp-chown.exp17
-rwxr-xr-xtest/utils/seccomp-print.exp4
9 files changed, 105 insertions, 29 deletions
diff --git a/etc/slack.profile b/etc/slack.profile
index 9025e4f75..faf875cf1 100644
--- a/etc/slack.profile
+++ b/etc/slack.profile
@@ -36,5 +36,5 @@ shell none
36disable-mnt 36disable-mnt
37private-bin slack 37private-bin slack
38private-dev 38private-dev
39private-etc fonts,resolv.conf,ld.so.conf,ld.so.cache,localtime 39private-etc asound.conf,ca-certificates,fonts,group,passwd,pulse,resolv.conf,ssl,ld.so.conf,ld.so.cache,localtime
40private-tmp 40private-tmp
diff --git a/gcov.sh b/gcov.sh
index 092b755af..df1fcb51b 100755
--- a/gcov.sh
+++ b/gcov.sh
@@ -8,12 +8,13 @@ gcov_init() {
8 /usr/lib/firejail/fseccomp --help > /dev/null 8 /usr/lib/firejail/fseccomp --help > /dev/null
9 /usr/lib/firejail/ftee --help > /dev/null 9 /usr/lib/firejail/ftee --help > /dev/null
10 /usr/lib/firejail/fcopy --help > /dev/null 10 /usr/lib/firejail/fcopy --help > /dev/null
11 /usr/lib/firejail/fldd --help > /dev/null
11 firecfg --help > /dev/null 12 firecfg --help > /dev/null
12 sudo chown $USER:$USER `find .` 13 sudo chown $USER:$USER `find .`
13} 14}
14 15
15generate() { 16generate() {
16 lcov -q --capture -d src/firejail -d src/firemon -d src/fcopy -d src/fseccomp -d src/fnet -d src/ftee -d src/lib -d src/firecfg --output-file gcov-file-new 17 lcov -q --capture -d src/firejail -d src/firemon -d src/fcopy -d src/fseccomp -d src/fnet -d src/ftee -d src/lib -d src/firecfg -d src/fldd --output-file gcov-file-new
17 lcov --add-tracefile gcov-file-old --add-tracefile gcov-file-new --output-file gcov-file 18 lcov --add-tracefile gcov-file-old --add-tracefile gcov-file-new --output-file gcov-file
18 rm -fr gcov-dir 19 rm -fr gcov-dir
19 genhtml -q gcov-file --output-directory gcov-dir 20 genhtml -q gcov-file --output-directory gcov-dir
@@ -24,7 +25,7 @@ generate() {
24 25
25 26
26gcov_init 27gcov_init
27lcov -q --capture -d src/firejail -d src/firemon -d src/fcopy -d src/fseccomp -d src/fnet -d src/ftee -d src/lib -d src/firecfg --output-file gcov-file-old 28lcov -q --capture -d src/firejail -d src/firemon -d src/fcopy -d src/fseccomp -d src/fnet -d src/ftee -d src/lib -d src/firecfg -d src/fldd --output-file gcov-file-old
28 29
29#make test-environment 30#make test-environment
30#generate 31#generate
diff --git a/src/fldd/main.c b/src/fldd/main.c
index 947c6b4ae..5fda45266 100644
--- a/src/fldd/main.c
+++ b/src/fldd/main.c
@@ -265,6 +265,11 @@ printf("\n");
265 } 265 }
266 266
267 267
268 if (strcmp(argv[1], "--help") == 0) {
269 usage();
270 return 0;
271 }
272
268 // check program access 273 // check program access
269 if (access(argv[1], R_OK)) { 274 if (access(argv[1], R_OK)) {
270 fprintf(stderr, "Error fldd: cannot access %s\n", argv[1]); 275 fprintf(stderr, "Error fldd: cannot access %s\n", argv[1]);
diff --git a/test/fs/fs.sh b/test/fs/fs.sh
index 9e7ead3c9..e67ccc476 100755
--- a/test/fs/fs.sh
+++ b/test/fs/fs.sh
@@ -28,6 +28,9 @@ echo "TESTING: kmsg access (test/fs/kmsg.exp)"
28echo "TESTING: read/write /var/tmp (test/fs/fs_var_tmp.exp)" 28echo "TESTING: read/write /var/tmp (test/fs/fs_var_tmp.exp)"
29./fs_var_tmp.exp 29./fs_var_tmp.exp
30 30
31echo "TESTING: private-lib (test/fs/private-lib.exp)"
32./private-lib.exp
33
31echo "TESTING: read/write /var/lock (test/fs/fs_var_lock.exp)" 34echo "TESTING: read/write /var/lock (test/fs/fs_var_lock.exp)"
32./fs_var_lock.exp 35./fs_var_lock.exp
33 36
diff --git a/test/fs/private-lib.exp b/test/fs/private-lib.exp
new file mode 100755
index 000000000..dd418da0f
--- /dev/null
+++ b/test/fs/private-lib.exp
@@ -0,0 +1,44 @@
1#!/usr/bin/expect -f
2# This file is part of Firejail project
3# Copyright (C) 2014-2017 Firejail Authors
4# License GPL v2
5
6set timeout 10
7spawn $env(SHELL)
8match_max 100000
9
10send -- "firejail --private-lib --private-bin=sh,bash,dash,ps,grep,ls,find,echo \r"
11expect {
12 timeout {puts "TESTING ERROR 1\n";exit}
13 "Child process initialized"
14}
15after 100
16
17send -- "find /bin; echo done\r"
18expect {
19 timeout {puts "TESTING ERROR 2\n";exit}
20 "rm" {puts "TESTING ERROR 3\n";exit}
21 "cp" {puts "TESTING ERROR 4\n";exit}
22 "done"
23}
24after 100
25
26send -- "find /lib; echo done\r"
27expect {
28 timeout {puts "TESTING ERROR 5\n";exit}
29 "modules" {puts "TESTING ERROR 6\n";exit}
30 "firmware" {puts "TESTING ERROR 7\n";exit}
31 "libc.so"
32}
33after 100
34
35send -- "find /usr/lib; echo done\r"
36expect {
37 timeout {puts "TESTING ERROR 8\n";exit}
38 "grub" {puts "TESTING ERROR 9\n";exit}
39 "mozilla" {puts "TESTING ERROR 10\n";exit}
40 "libdl.so"
41}
42after 100
43
44puts "\nall done\n"
diff --git a/test/root/checkcfg.exp b/test/root/checkcfg.exp
index 205ef1e0c..e17e9cda2 100755
--- a/test/root/checkcfg.exp
+++ b/test/root/checkcfg.exp
@@ -88,6 +88,7 @@ expect {
88 timeout {puts "TESTING ERROR 9\n";exit} 88 timeout {puts "TESTING ERROR 9\n";exit}
89 "noroot feature is disabled in Firejail configuration file\r" 89 "noroot feature is disabled in Firejail configuration file\r"
90} 90}
91sleep 1
91 92
92# netfilter-default 93# netfilter-default
93send -- "echo \"netfilter-default blablabla\" > /etc/firejail/firejail.config\r" 94send -- "echo \"netfilter-default blablabla\" > /etc/firejail/firejail.config\r"
@@ -97,6 +98,7 @@ expect {
97 timeout {puts "TESTING ERROR 10\n";exit} 98 timeout {puts "TESTING ERROR 10\n";exit}
98 "netfilter-default file blablabla not available\r" 99 "netfilter-default file blablabla not available\r"
99} 100}
101after 100
100 102
101# strings 103# strings
102send -- "echo \"xephyr-screen 800x600\" > /etc/firejail/firejail.config\r" 104send -- "echo \"xephyr-screen 800x600\" > /etc/firejail/firejail.config\r"
@@ -104,17 +106,15 @@ after 100
104send -- "echo \"xvfb-screen 800x600x24\" >> /etc/firejail/firejail.config\r" 106send -- "echo \"xvfb-screen 800x600x24\" >> /etc/firejail/firejail.config\r"
105after 100 107after 100
106send -- "echo \"xvfb-extra-params blablabla\" >> /etc/firejail/firejail.config\r" 108send -- "echo \"xvfb-extra-params blablabla\" >> /etc/firejail/firejail.config\r"
107after 100 109sleep 1
108send -- "firejail --noprofile\r" 110send -- "firejail --noprofile echo done\r"
109expect { 111expect {
110 timeout {puts "TESTING ERROR 11\n";exit} 112 timeout {puts "TESTING ERROR 11\n";exit}
111 "Child process initialized\r" 113 "done\r"
112} 114}
113after 100 115sleep 1
114send -- "exit\r"
115after 100
116 116
117# error exit 117after 100
118send -- "echo \"join no\" > /etc/firejail/firejail.config\r" 118send -- "echo \"join no\" > /etc/firejail/firejail.config\r"
119after 100 119after 100
120send -- "echo \"cache-tmpfs no\" >> /etc/firejail/firejail.config\r" 120send -- "echo \"cache-tmpfs no\" >> /etc/firejail/firejail.config\r"
diff --git a/test/root/firecfg.exp b/test/root/firecfg.exp
index 8961aed60..8210496bb 100755
--- a/test/root/firecfg.exp
+++ b/test/root/firecfg.exp
@@ -15,40 +15,64 @@ expect {
15 timeout {puts "TESTING ERROR 0\n";exit} 15 timeout {puts "TESTING ERROR 0\n";exit}
16 "/usr/local/bin/firefox removed" 16 "/usr/local/bin/firefox removed"
17} 17}
18after 100 18sleep 1
19
19send -- "file /usr/local/bin/firefox; echo done\r" 20send -- "file /usr/local/bin/firefox; echo done\r"
20expect { 21expect {
21 timeout {puts "TESTING ERROR 1\n";exit} 22 timeout {puts "TESTING ERROR 1\n";exit}
22 "symbolic link to /usr/bin/firejail" {puts "TESTING ERROR 2\n";exit} 23 "symbolic link to /usr/bin/firejail" {puts "TESTING ERROR 2\n";exit}
23 "done" 24 "done"
24} 25}
25after 100 26sleep 1
26 27
27send -- "firecfg\r" 28send -- "firecfg\r"
28expect { 29expect {
29 timeout {puts "TESTING ERROR 3\n";exit} 30 timeout {puts "TESTING ERROR 3\n";exit}
30 "/usr/local/bin/firefox created" 31 "firefox created"
31} 32}
32after 100 33sleep 1
34
33send -- "file /usr/local/bin/firefox\r" 35send -- "file /usr/local/bin/firefox\r"
34expect { 36expect {
35 timeout {puts "TESTING ERROR 4\n";exit} 37 timeout {puts "TESTING ERROR 4\n";exit}
36 "symbolic link to /usr/bin/firejail" 38 "symbolic link to /usr/bin/firejail"
37} 39}
38after 100 40sleep 1
39 41
40send -- "firecfg --list\r" 42send -- "firecfg --list\r"
41expect { 43expect {
42 timeout {puts "TESTING ERROR 5\n";exit} 44 timeout {puts "TESTING ERROR 5\n";exit}
43 "/usr/local/bin/firefox" 45 "/usr/local/bin/firefox"
44} 46}
45after 100 47sleep 1
46 48
47send -- "firecfg --fix\r" 49send -- "firecfg --fix\r"
48expect { 50expect {
49 timeout {puts "TESTING ERROR 5\n";exit} 51 timeout {puts "TESTING ERROR 6\n";exit}
50 "this option is not supported for root user" 52 "this option is not supported for root user"
51} 53}
54sleep 1
55
56send -- "firecfg --fix-sound\r"
57expect {
58 timeout {puts "TESTING ERROR 7\n";exit}
59 "PulseAudio configured, please logout and login back again"
60}
61sleep 1
62
63send -- "firecfg --version\r"
64expect {
65 timeout {puts "TESTING ERROR 8\n";exit}
66 "firecfg version"
67}
68sleep 1
69
70send -- "firecfg --blablabla\r"
71expect {
72 timeout {puts "TESTING ERROR 9\n";exit}
73 "invalid command line option"
74}
75sleep 1
76
52 77
53after 100
54puts "\nall done\n" 78puts "\nall done\n"
diff --git a/test/root/seccomp-chown.exp b/test/root/seccomp-chown.exp
index 7d9da5e5a..174a35ffe 100755
--- a/test/root/seccomp-chown.exp
+++ b/test/root/seccomp-chown.exp
@@ -14,33 +14,32 @@ expect {
14} 14}
15sleep 2 15sleep 2
16 16
17send -- "touch testfile;pwd\r" 17send -- "touch testfile; echo done\r"
18expect { 18expect {
19 timeout {puts "TESTING ERROR 1\n";exit} 19 timeout {puts "TESTING ERROR 1\n";exit}
20 "/root" {puts "running as root"} 20 "done"
21 "/home"
22} 21}
22after 100
23 23
24send -- "ls -l testfile;pwd\r" 24send -- "ls -l testfile; echo done\r"
25expect { 25expect {
26 timeout {puts "TESTING ERROR 2\n";exit} 26 timeout {puts "TESTING ERROR 2\n";exit}
27 "testfile" 27 "testfile"
28} 28}
29expect { 29expect {
30 timeout {puts "TESTING ERROR 3\n";exit} 30 timeout {puts "TESTING ERROR 3\n";exit}
31 "/root" {puts "running as root"} 31 "done"
32 "/home"
33} 32}
33after 100
34 34
35send -- "chown netblue:netblue testfile;pwd\r" 35send -- "chown netblue:netblue testfile; echo done\r"
36expect { 36expect {
37 timeout {puts "TESTING ERROR 2\n";exit} 37 timeout {puts "TESTING ERROR 2\n";exit}
38 "Bad system call" 38 "Bad system call"
39} 39}
40expect { 40expect {
41 timeout {puts "TESTING ERROR 3\n";exit} 41 timeout {puts "TESTING ERROR 3\n";exit}
42 "/root" {puts "running as root"} 42 "done"
43 "/home"
44} 43}
45 44
46 45
diff --git a/test/utils/seccomp-print.exp b/test/utils/seccomp-print.exp
index 5a76d7fcc..b3ab5e13c 100755
--- a/test/utils/seccomp-print.exp
+++ b/test/utils/seccomp-print.exp
@@ -22,11 +22,11 @@ expect {
22} 22}
23expect { 23expect {
24 timeout {puts "TESTING ERROR 2\n";exit} 24 timeout {puts "TESTING ERROR 2\n";exit}
25 "init_module" 25 "delete_module"
26} 26}
27expect { 27expect {
28 timeout {puts "TESTING ERROR 3\n";exit} 28 timeout {puts "TESTING ERROR 3\n";exit}
29 "delete_module" 29 "init_module"
30} 30}
31expect { 31expect {
32 timeout {puts "TESTING ERROR 4\n";exit} 32 timeout {puts "TESTING ERROR 4\n";exit}