From 828e35086834abd2886151d2a05952976a9a0a9b Mon Sep 17 00:00:00 2001 From: netblue30 Date: Sat, 19 Aug 2017 12:45:38 -0400 Subject: testing --- src/firemon/firemon.c | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'src/firemon') diff --git a/src/firemon/firemon.c b/src/firemon/firemon.c index f89196f21..1f3fdd578 100644 --- a/src/firemon/firemon.c +++ b/src/firemon/firemon.c @@ -52,15 +52,35 @@ static void my_handler(int s){ exit(0); } -// find the first child process for the specified pid +// find the second child process for the specified pid // return -1 if not found +// +// Example: +//14776:netblue:/usr/bin/firejail /usr/bin/transmission-qt +// 14777:netblue:/usr/bin/firejail /usr/bin/transmission-qt +// 14792:netblue:/usr/bin/transmission-qt +// We need 14792, the first real sandboxed process int find_child(int id) { int i; + int first_child = -1; + + // find the first child for (i = 0; i < max_pids; i++) { - if (pids[i].level == 2 && pids[i].parent == id) - return i; + if (pids[i].level == 2 && pids[i].parent == id) { + first_child = i; + break; + } } + if (first_child == -1) + return -1; + + // find the second child + for (i = 0; i < max_pids; i++) { + if (pids[i].level == 3 && pids[i].parent == first_child) + return i; + } + return -1; } -- cgit v1.2.3-54-g00ecf