[DTrace-devel] [PATCH 1/4] Tweak self-armouring

eugene.loh at oracle.com eugene.loh at oracle.com
Fri Oct 4 04:43:52 UTC 2024


From: Eugene Loh <eugene.loh at oracle.com>

Commit ea592d60 ("proc: improve armouring against self-grabs") has no
tests, but it breaks test/unittest/usdt/tst.multitrace.sh.  The patch
makes the following change in libdtrace/dt_proc.c dt_proc_control():

        if ((Psystem_daemon(dpr->dpr_pid, dtp->dt_useruid,
                    dtp->dt_sysslice) > 0) ||
    -       ((tracer_pid != 0) &&
    -        (tracer_pid != getpid())) ||
    +       (tracer_pid == getpid()) ||
    -       (dpr->dpr_pid == getpid()))
    +       (tgid == getpid()))
                noninvasive = 2;

We change a
        (tracer_pid != getpid())
into a
        (tracer_pid == getpid())

Changing that == back into a != makes tst.multitrace.sh work again.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
---
 libdtrace/dt_proc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libdtrace/dt_proc.c b/libdtrace/dt_proc.c
index a052abbac..7c3eb2a24 100644
--- a/libdtrace/dt_proc.c
+++ b/libdtrace/dt_proc.c
@@ -954,7 +954,7 @@ dt_proc_control(void *arg)
 
 			if ((Psystem_daemon(dpr->dpr_pid, dtp->dt_useruid,
 				    dtp->dt_sysslice) > 0) ||
-			    (tracer_pid == getpid()) ||
+			    (tracer_pid != getpid()) ||
 			    (tgid == getpid()))
 				noninvasive = 2;
 		}
-- 
2.43.5




More information about the DTrace-devel mailing list