diff options
-rw-r--r-- | src/firemon/Makefile.in | 4 | ||||
-rw-r--r-- | src/firemon/netstats.c | 12 | ||||
-rw-r--r-- | src/firemon/top.c | 14 |
3 files changed, 26 insertions, 4 deletions
diff --git a/src/firemon/Makefile.in b/src/firemon/Makefile.in index a7a97cf5a..83a6621fe 100644 --- a/src/firemon/Makefile.in +++ b/src/firemon/Makefile.in | |||
@@ -1,6 +1,6 @@ | |||
1 | all: firemon | 1 | all: firemon |
2 | 2 | ||
3 | PREFIX=@prefix@ | 3 | prefix=@prefix@ |
4 | VERSION=@PACKAGE_VERSION@ | 4 | VERSION=@PACKAGE_VERSION@ |
5 | NAME=@PACKAGE_NAME@ | 5 | NAME=@PACKAGE_NAME@ |
6 | HAVE_FATAL_WARNINGS=@HAVE_FATAL_WARNINGS@ | 6 | HAVE_FATAL_WARNINGS=@HAVE_FATAL_WARNINGS@ |
@@ -11,7 +11,7 @@ H_FILE_LIST = $(sort $(wildcard *.[h])) | |||
11 | C_FILE_LIST = $(sort $(wildcard *.c)) | 11 | C_FILE_LIST = $(sort $(wildcard *.c)) |
12 | OBJS = $(C_FILE_LIST:.c=.o) | 12 | OBJS = $(C_FILE_LIST:.c=.o) |
13 | BINOBJS = $(foreach file, $(OBJS), $file) | 13 | BINOBJS = $(foreach file, $(OBJS), $file) |
14 | CFLAGS += -ggdb $(HAVE_FATAL_WARNINGS) -O2 -DVERSION='"$(VERSION)"' $(HAVE_GCOV) -fstack-protector-all -D_FORTIFY_SOURCE=2 -fPIE -pie -Wformat -Wformat-security | 14 | CFLAGS += -ggdb $(HAVE_FATAL_WARNINGS) -O2 -DVERSION='"$(VERSION)"' -DPREFIX='"$(prefix)"' $(HAVE_GCOV) -fstack-protector-all -D_FORTIFY_SOURCE=2 -fPIE -pie -Wformat -Wformat-security |
15 | LDFLAGS += -pie -Wl,-z,relro -Wl,-z,now | 15 | LDFLAGS += -pie -Wl,-z,relro -Wl,-z,now |
16 | HAVE_GCOV=@HAVE_GCOV@ | 16 | HAVE_GCOV=@HAVE_GCOV@ |
17 | EXTRA_LDFLAGS +=@EXTRA_LDFLAGS@ | 17 | EXTRA_LDFLAGS +=@EXTRA_LDFLAGS@ |
diff --git a/src/firemon/netstats.c b/src/firemon/netstats.c index c5e8a242c..53399300c 100644 --- a/src/firemon/netstats.c +++ b/src/firemon/netstats.c | |||
@@ -109,7 +109,17 @@ errexit: | |||
109 | } | 109 | } |
110 | 110 | ||
111 | 111 | ||
112 | static char *firejail_exec = NULL; | ||
113 | static int firejail_exec_len = 0; | ||
114 | static int firejail_exec_prefix_len = 0; | ||
112 | static void print_proc(int index, int itv, int col) { | 115 | static void print_proc(int index, int itv, int col) { |
116 | if (!firejail_exec) { | ||
117 | if (asprintf(&firejail_exec, "%s/bin/firejail", PREFIX) == -1) | ||
118 | errExit("asprintf"); | ||
119 | firejail_exec_len = strlen(firejail_exec); | ||
120 | firejail_exec_prefix_len = strlen(PREFIX) + 5; | ||
121 | } | ||
122 | |||
113 | // command | 123 | // command |
114 | char *cmd = pid_proc_cmdline(index); | 124 | char *cmd = pid_proc_cmdline(index); |
115 | char *ptrcmd; | 125 | char *ptrcmd; |
@@ -119,6 +129,8 @@ static void print_proc(int index, int itv, int col) { | |||
119 | else | 129 | else |
120 | ptrcmd = ""; | 130 | ptrcmd = ""; |
121 | } | 131 | } |
132 | else if (strncmp(cmd, firejail_exec, firejail_exec_len) == 0) | ||
133 | ptrcmd = cmd + firejail_exec_prefix_len; | ||
122 | else | 134 | else |
123 | ptrcmd = cmd; | 135 | ptrcmd = cmd; |
124 | 136 | ||
diff --git a/src/firemon/top.c b/src/firemon/top.c index 3a79a5260..3d657a6a6 100644 --- a/src/firemon/top.c +++ b/src/firemon/top.c | |||
@@ -54,6 +54,9 @@ static char *get_header(void) { | |||
54 | } | 54 | } |
55 | 55 | ||
56 | 56 | ||
57 | static char *firejail_exec = NULL; | ||
58 | static int firejail_exec_len = 0; | ||
59 | static int firejail_exec_prefix_len = 0; | ||
57 | // recursivity!!! | 60 | // recursivity!!! |
58 | static char *print_top(unsigned index, unsigned parent, unsigned *utime, unsigned *stime, unsigned itv, float *cpu, int *cnt) { | 61 | static char *print_top(unsigned index, unsigned parent, unsigned *utime, unsigned *stime, unsigned itv, float *cpu, int *cnt) { |
59 | char *rv = NULL; | 62 | char *rv = NULL; |
@@ -90,6 +93,13 @@ static char *print_top(unsigned index, unsigned parent, unsigned *utime, unsigne | |||
90 | print_top(i, index, utime, stime, itv, cpu, cnt); | 93 | print_top(i, index, utime, stime, itv, cpu, cnt); |
91 | } | 94 | } |
92 | 95 | ||
96 | if (!firejail_exec) { | ||
97 | if (asprintf(&firejail_exec, "%s/bin/firejail", PREFIX) == -1) | ||
98 | errExit("asprintf"); | ||
99 | firejail_exec_len = strlen(firejail_exec); | ||
100 | firejail_exec_prefix_len = strlen(PREFIX) + 5; | ||
101 | } | ||
102 | |||
93 | if (pids[index].level == 1) { | 103 | if (pids[index].level == 1) { |
94 | // pid | 104 | // pid |
95 | char pidstr[10]; | 105 | char pidstr[10]; |
@@ -104,8 +114,8 @@ static char *print_top(unsigned index, unsigned parent, unsigned *utime, unsigne | |||
104 | else | 114 | else |
105 | ptrcmd = ""; | 115 | ptrcmd = ""; |
106 | } | 116 | } |
107 | else if (strncmp(cmd, "/usr/bin/firejail", 17) == 0) | 117 | else if (strncmp(cmd, firejail_exec, firejail_exec_len) == 0) |
108 | ptrcmd = cmd + 9; | 118 | ptrcmd = cmd + firejail_exec_prefix_len; |
109 | else | 119 | else |
110 | ptrcmd = cmd; | 120 | ptrcmd = cmd; |
111 | 121 | ||