From 57d4877082cb4eb2d193e68694aef139e082a68a Mon Sep 17 00:00:00 2001 From: netblue30 Date: Tue, 15 Aug 2017 19:09:11 -0400 Subject: fix x11 display reporting in firemon and firetools for sessions joining an existing x11 sandbox --- src/firejail/firejail.h | 1 + src/firejail/join.c | 5 +++++ src/firejail/main.c | 3 +-- 3 files changed, 7 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/firejail/firejail.h b/src/firejail/firejail.h index b31d1365c..690f76e05 100644 --- a/src/firejail/firejail.h +++ b/src/firejail/firejail.h @@ -376,6 +376,7 @@ extern char *fullargv[MAX_ARGS]; extern int fullargc; // main.c +void set_x11_file(pid_t pid, int display); void check_user_namespace(void); char *guess_shell(void); diff --git a/src/firejail/join.c b/src/firejail/join.c index dd7b2e9bb..14e3ae920 100644 --- a/src/firejail/join.c +++ b/src/firejail/join.c @@ -61,6 +61,11 @@ static void extract_x11_display(pid_t pid) { fprintf(stderr, "Error: invalid X11 display range\n"); return; } + + // store the display number for join process in /run/firejail/x11 + EUID_ROOT(); + set_x11_file(getpid(), display); + EUID_USER(); } static void extract_command(int argc, char **argv, int index) { diff --git a/src/firejail/main.c b/src/firejail/main.c index 9726c0b8a..71a37beb7 100644 --- a/src/firejail/main.c +++ b/src/firejail/main.c @@ -129,7 +129,6 @@ unsigned long long start_timestamp; static void set_name_file(pid_t pid); static void delete_name_file(pid_t pid); -static void set_x11_file(pid_t pid, int display); static void delete_x11_file(pid_t pid); void clear_run_files(pid_t pid) { @@ -738,7 +737,7 @@ static void delete_name_file(pid_t pid) { free(fname); } -static void set_x11_file(pid_t pid, int display) { +void set_x11_file(pid_t pid, int display) { char *fname; if (asprintf(&fname, "%s/%d", RUN_FIREJAIL_X11_DIR, pid) == -1) errExit("asprintf"); -- cgit v1.2.3-54-g00ecf