aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLibravatar netblue30 <netblue30@yahoo.com>2017-08-15 19:09:11 -0400
committerLibravatar netblue30 <netblue30@yahoo.com>2017-08-15 19:09:11 -0400
commit57d4877082cb4eb2d193e68694aef139e082a68a (patch)
treedcbd497e38c929143229e2582514d64413d1c04a /src
parentFix mpv running with youtube-dl on Debian systems (diff)
downloadfirejail-57d4877082cb4eb2d193e68694aef139e082a68a.tar.gz
firejail-57d4877082cb4eb2d193e68694aef139e082a68a.tar.zst
firejail-57d4877082cb4eb2d193e68694aef139e082a68a.zip
fix x11 display reporting in firemon and firetools for sessions joining an existing x11 sandbox
Diffstat (limited to 'src')
-rw-r--r--src/firejail/firejail.h1
-rw-r--r--src/firejail/join.c5
-rw-r--r--src/firejail/main.c3
3 files changed, 7 insertions, 2 deletions
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];
376extern int fullargc; 376extern int fullargc;
377 377
378// main.c 378// main.c
379void set_x11_file(pid_t pid, int display);
379void check_user_namespace(void); 380void check_user_namespace(void);
380char *guess_shell(void); 381char *guess_shell(void);
381 382
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) {
61 fprintf(stderr, "Error: invalid X11 display range\n"); 61 fprintf(stderr, "Error: invalid X11 display range\n");
62 return; 62 return;
63 } 63 }
64
65 // store the display number for join process in /run/firejail/x11
66 EUID_ROOT();
67 set_x11_file(getpid(), display);
68 EUID_USER();
64} 69}
65 70
66static void extract_command(int argc, char **argv, int index) { 71static 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;
129 129
130static void set_name_file(pid_t pid); 130static void set_name_file(pid_t pid);
131static void delete_name_file(pid_t pid); 131static void delete_name_file(pid_t pid);
132static void set_x11_file(pid_t pid, int display);
133static void delete_x11_file(pid_t pid); 132static void delete_x11_file(pid_t pid);
134 133
135void clear_run_files(pid_t pid) { 134void clear_run_files(pid_t pid) {
@@ -738,7 +737,7 @@ static void delete_name_file(pid_t pid) {
738 free(fname); 737 free(fname);
739} 738}
740 739
741static void set_x11_file(pid_t pid, int display) { 740void set_x11_file(pid_t pid, int display) {
742 char *fname; 741 char *fname;
743 if (asprintf(&fname, "%s/%d", RUN_FIREJAIL_X11_DIR, pid) == -1) 742 if (asprintf(&fname, "%s/%d", RUN_FIREJAIL_X11_DIR, pid) == -1)
744 errExit("asprintf"); 743 errExit("asprintf");