lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 23 May 2011 15:34:26 +0200
From:	Oleg Nesterov <oleg@...hat.com>
To:	Tejun Heo <tj@...nel.org>
Cc:	Denys Vlasenko <vda.linux@...glemail.com>,
	jan.kratochvil@...hat.com, linux-kernel@...r.kernel.org,
	torvalds@...ux-foundation.org, akpm@...ux-foundation.org,
	indan@....nu, bdonlan@...il.com
Subject: Re: [PATCH 10/10] ptrace: implement group stop notification for
	ptracer

On 05/20, Tejun Heo wrote:
>
> 1. A process has two threads t1 and t2.  t1 is ptraced by p1.  Both t1
>    and t2 are running.
>
> 2. p1 INTERRUPTs t1.  t1 enters TRAP_STOP and p1 notices it.
>
> 3. Something else sends SIGSTOP to t2 which initiates group stop.
>
> 4. As t1 re-traps to notify p1 of group stop, p1 issues PTRACE_CONT.
>
> 5. PTRACE_CONT succeeds right after t1 re-traps for notification and
>    t1 resumes execution.

IOW. The root of the problem is that TASK_TRACED no longer means the
tracee is stopped, it can change its state and the "volatile" info
in si_pt_flags reflects this fact.

This makes me nervous ;) Yes, we hide the TRACED->RUNNING->TRACED
transitions, and I have to agree that the proposed API looks consistent
to me. Still, can't we do this differently ? (see another email).

Oleg.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ