From 4a270c553b4edc0e745759670ba0c2b2ca814e1b Mon Sep 17 00:00:00 2001 From: startx2017 Date: Fri, 7 Jul 2017 08:53:30 -0400 Subject: fix firemon --name --- src/firemon/cgroup.c | 1 + src/firemon/firemon.c | 26 +++++++++++++++++++++----- src/firemon/procevent.c | 14 -------------- 3 files changed, 22 insertions(+), 19 deletions(-) diff --git a/src/firemon/cgroup.c b/src/firemon/cgroup.c index 41afa41fd..8cf8d14f7 100644 --- a/src/firemon/cgroup.c +++ b/src/firemon/cgroup.c @@ -48,6 +48,7 @@ void cgroup(pid_t pid, int print_procs) { pid_read(pid); // print processes + printf(" cgroup: "); int i; for (i = 0; i < max_pids; i++) { if (pids[i].level == 1) { diff --git a/src/firemon/firemon.c b/src/firemon/firemon.c index aaeffdbd2..5861e35ee 100644 --- a/src/firemon/firemon.c +++ b/src/firemon/firemon.c @@ -201,18 +201,32 @@ int main(int argc, char **argv) { } if (arg_top) { - top(); + top(); // print all sandboxes, --name disregarded return 0; } if (arg_list) { - list(); + list(); // print all sandboxes, --name disregarded return 0; } if (arg_netstats) { - netstats(); + netstats(); // print all sandboxes, --name disregarded return 0; } + // if --name requested without other options, print all data + if (pid && !arg_tree && !arg_cpu && !arg_seccomp && !arg_caps && + !arg_cgroup && !arg_x11 && !arg_interface && !arg_route && !arg_arp) { + arg_tree = 1; + arg_cpu = 1; + arg_seccomp = 1; + arg_caps = 1; + arg_cgroup = 1; + arg_x11 = 1; + arg_interface = 1; + arg_route = 1; + arg_arp = 1; + } + // cumulative options int print_procs = 1; if (arg_tree) { @@ -239,7 +253,7 @@ int main(int argc, char **argv) { x11((pid_t) pid, print_procs); print_procs = 0; } - if (arg_interface) { + if (arg_interface && getuid() == 0) { interface((pid_t) pid, print_procs); print_procs = 0; } @@ -252,7 +266,9 @@ int main(int argc, char **argv) { print_procs = 0; } - if (print_procs) + if (getuid() == 0) + if (!arg_tree) + tree((pid_t) pid); procevent((pid_t) pid); return 0; diff --git a/src/firemon/procevent.c b/src/firemon/procevent.c index d6afed93a..27c0e2b3f 100644 --- a/src/firemon/procevent.c +++ b/src/firemon/procevent.c @@ -449,16 +449,6 @@ static int procevent_monitor(const int sock, pid_t mypid) { return 0; } -static void procevent_print_pids(void) { - // print files - int i; - for (i = 0; i < max_pids; i++) { - if (pids[i].level == 1) - pid_print_tree(i, 0, 1); - } - printf("\n"); -} - void procevent(pid_t pid) { // need to be root for this if (getuid() != 0) { @@ -466,10 +456,6 @@ void procevent(pid_t pid) { exit(1); } - // read and print sandboxed processes - pid_read(pid); - procevent_print_pids(); - // monitor using netlink int sock = procevent_netlink_setup(); if (sock < 0) { -- cgit v1.2.3-54-g00ecf