aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLibravatar startx2017 <vradu.startx@yandex.com>2017-09-15 07:53:56 -0400
committerLibravatar startx2017 <vradu.startx@yandex.com>2017-09-15 07:53:56 -0400
commitfd241d3c78df2a3b28d376ce87958a2804590ad2 (patch)
tree4dbf23cf126c0ffac9f4dd48545383893ed1e1b9 /src
parentupdate whitelist-common.inc (diff)
downloadfirejail-fd241d3c78df2a3b28d376ce87958a2804590ad2.tar.gz
firejail-fd241d3c78df2a3b28d376ce87958a2804590ad2.tar.zst
firejail-fd241d3c78df2a3b28d376ce87958a2804590ad2.zip
fix dependency on /etc/firejail/firejail.config when starting on symbolic links
Diffstat (limited to 'src')
-rw-r--r--src/firejail/firejail.h2
-rw-r--r--src/firejail/join.c2
-rw-r--r--src/firejail/no_sandbox.c2
-rw-r--r--src/firejail/sandbox.c10
4 files changed, 9 insertions, 7 deletions
diff --git a/src/firejail/firejail.h b/src/firejail/firejail.h
index 0ab27e89b..bea195f36 100644
--- a/src/firejail/firejail.h
+++ b/src/firejail/firejail.h
@@ -387,7 +387,7 @@ char *guess_shell(void);
387 387
388// sandbox.c 388// sandbox.c
389int sandbox(void* sandbox_arg); 389int sandbox(void* sandbox_arg);
390void start_application(void); 390void start_application(int no_sandbox);
391 391
392// network_main.c 392// network_main.c
393void net_configure_bridge(Bridge *br, char *dev_name); 393void net_configure_bridge(Bridge *br, char *dev_name);
diff --git a/src/firejail/join.c b/src/firejail/join.c
index 14e3ae920..9f52d4565 100644
--- a/src/firejail/join.c
+++ b/src/firejail/join.c
@@ -386,7 +386,7 @@ void join(pid_t pid, int argc, char **argv, int index) {
386 } 386 }
387 } 387 }
388 388
389 start_application(); 389 start_application(0);
390 390
391 // it will never get here!!! 391 // it will never get here!!!
392 } 392 }
diff --git a/src/firejail/no_sandbox.c b/src/firejail/no_sandbox.c
index 07c42006d..83737c73d 100644
--- a/src/firejail/no_sandbox.c
+++ b/src/firejail/no_sandbox.c
@@ -235,5 +235,5 @@ void run_no_sandbox(int argc, char **argv) {
235 235
236 arg_quiet = 1; 236 arg_quiet = 1;
237 237
238 start_application(); 238 start_application(1);
239} 239}
diff --git a/src/firejail/sandbox.c b/src/firejail/sandbox.c
index 656942440..abdbbfecd 100644
--- a/src/firejail/sandbox.c
+++ b/src/firejail/sandbox.c
@@ -350,10 +350,12 @@ static int ok_to_run(const char *program) {
350 return 0; 350 return 0;
351} 351}
352 352
353void start_application(void) { 353void start_application(int no_sandbox) {
354 // set environment 354 // set environment
355 env_defaults(); 355 if (no_sandbox == 0) {
356 env_apply(); 356 env_defaults();
357 env_apply();
358 }
357 if (arg_debug) { 359 if (arg_debug) {
358 printf("starting application\n"); 360 printf("starting application\n");
359 printf("LD_PRELOAD=%s\n", getenv("LD_PRELOAD")); 361 printf("LD_PRELOAD=%s\n", getenv("LD_PRELOAD"));
@@ -1082,7 +1084,7 @@ int sandbox(void* sandbox_arg) {
1082 } 1084 }
1083#endif 1085#endif
1084 prctl(PR_SET_PDEATHSIG, SIGKILL, 0, 0, 0); // kill the child in case the parent died 1086 prctl(PR_SET_PDEATHSIG, SIGKILL, 0, 0, 0); // kill the child in case the parent died
1085 start_application(); // start app 1087 start_application(0); // start app
1086 } 1088 }
1087 1089
1088 int status = monitor_application(app_pid); // monitor application 1090 int status = monitor_application(app_pid); // monitor application