diff options
author | Andrew G. Morgan <morgan@kernel.org> | 2021-09-01 20:22:45 -0700 |
---|---|---|
committer | Andrew G. Morgan <morgan@kernel.org> | 2021-09-01 20:22:45 -0700 |
commit | 142ad758ffaaec1b4c4e5e7c61287a943f21ff7b (patch) | |
tree | 345879a2acb9733db0ef89194a2fd0b67bcb000e | |
parent | 0cba26fca376c34fa715b31b915ea0adee5d77ce (diff) | |
download | libcap2-142ad758ffaaec1b4c4e5e7c61287a943f21ff7b.tar.gz |
Don't display duplicate subtrees with captree.
This addresses issue (1) of:
https://bugzilla.kernel.org/show_bug.cgi?id=214269
Signed-off-by: Andrew G. Morgan <morgan@kernel.org>
-rw-r--r-- | goapps/captree/captree.go | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/goapps/captree/captree.go b/goapps/captree/captree.go index 4c7a586..f6bdaa4 100644 --- a/goapps/captree/captree.go +++ b/goapps/captree/captree.go @@ -88,6 +88,7 @@ var ( type task struct { mu sync.Mutex + viewed bool pid string cmd string cap *cap.Set @@ -183,6 +184,13 @@ func rDump(pids map[string]*task, pid, stub, lstub, estub string, depth int) { fmt.Println("[PID:", pid, "not found]") return } + if info.viewed { + // This process (tree) has already been viewed so skip + // repeating it. + return + } + info.viewed = true + c := "" set := info.cap if set != nil { |