From 9235754aea6751b7e7850b84387f37b814be127b Mon Sep 17 00:00:00 2001 From: netblue30 Date: Mon, 26 Sep 2022 08:40:49 -0400 Subject: join network/filesystem fixes --- src/firejail/join.c | 2 +- src/firejail/main.c | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/firejail/join.c b/src/firejail/join.c index 96d891a49..01fd6c41d 100644 --- a/src/firejail/join.c +++ b/src/firejail/join.c @@ -545,7 +545,7 @@ void join(pid_t pid, int argc, char **argv, int index) { dbus_set_system_bus_env(); #endif - start_application(0, shfd, NULL); + start_application(arg_join_network || arg_join_filesystem, shfd, NULL); __builtin_unreachable(); } diff --git a/src/firejail/main.c b/src/firejail/main.c index c7da3c95c..72d930419 100644 --- a/src/firejail/main.c +++ b/src/firejail/main.c @@ -824,7 +824,6 @@ static void run_cmd_and_exit(int i, int argc, char **argv) { // try to join by name only pid_t pid; if (!read_pid(argv[i] + 16, &pid)) { - join(pid, argc, argv, i + 1); exit(0); } @@ -843,6 +842,10 @@ static void run_cmd_and_exit(int i, int argc, char **argv) { exit(1); } + if (argc <= (i+1)) + just_run_the_shell = 1; + cfg.original_program_index = i + 1; + // join sandbox by pid or by name pid_t pid = require_pid(argv[i] + 15); join(pid, argc, argv, i + 1); @@ -860,6 +863,10 @@ static void run_cmd_and_exit(int i, int argc, char **argv) { exit(1); } + if (argc <= (i+1)) + just_run_the_shell = 1; + cfg.original_program_index = i + 1; + // join sandbox by pid or by name pid_t pid = require_pid(argv[i] + 18); join(pid, argc, argv, i + 1); -- cgit v1.2.3-70-g09d2