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

Kris Van Hees kris.van.hees at oracle.com
Fri Oct 25 21:02:19 UTC 2024


On Fri, Oct 04, 2024 at 12:43:52AM -0400, eugene.loh at oracle.com wrote:
> 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>

Reviewed-by: Kris Van Hees <kris.van.hees 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