aboutsummaryrefslogtreecommitdiffstats
path: root/src/firemon/x11.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/firemon/x11.c')
-rw-r--r--src/firemon/x11.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/firemon/x11.c b/src/firemon/x11.c
index e30c2d78b..b0efb090a 100644
--- a/src/firemon/x11.c
+++ b/src/firemon/x11.c
@@ -22,17 +22,15 @@
22#include <sys/stat.h> 22#include <sys/stat.h>
23#include <unistd.h> 23#include <unistd.h>
24 24
25void x11(pid_t pid) { 25void x11(pid_t pid, int print_procs) {
26 if (getuid() == 0)
27 firemon_drop_privs();
28
29 pid_read(pid); 26 pid_read(pid);
30 27
31 // print processes 28 // print processes
32 int i; 29 int i;
33 for (i = 0; i < max_pids; i++) { 30 for (i = 0; i < max_pids; i++) {
34 if (pids[i].level == 1) { 31 if (pids[i].level == 1) {
35 pid_print_list(i, 0); 32 if (print_procs || pid == 0)
33 pid_print_list(i, 0);
36 34
37 char *x11file; 35 char *x11file;
38 // todo: use macro from src/firejail/firejail.h for /run/firejail/x11 directory 36 // todo: use macro from src/firejail/firejail.h for /run/firejail/x11 directory
@@ -49,12 +47,13 @@ void x11(pid_t pid) {
49 int display; 47 int display;
50 int rv = fscanf(fp, "%d", &display); 48 int rv = fscanf(fp, "%d", &display);
51 if (rv == 1) 49 if (rv == 1)
52 printf(" DISPLAY :%d\n", display); 50 printf(" DISPLAY :%d\n", display);
53 fclose(fp); 51 fclose(fp);
54 } 52 }
55 53
56 free(x11file); 54 free(x11file);
57 } 55 }
58 } 56 }
57 printf("\n");
59} 58}
60 59