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:	Wed, 24 Jun 2009 12:42:39 -0700 (PDT)
From:	Roland McGrath <roland@...hat.com>
To:	Oleg Nesterov <oleg@...hat.com>
Cc:	Andrew Morton <akpm@...ux-foundation.org>,
	Ingo Molnar <mingo@...e.hu>,
	Ratan Nalumasu <rnalumasu@...il.com>,
	Vitaly Mayatskikh <vmayatsk@...hat.com>,
	linux-kernel@...r.kernel.org
Subject: Re: [RFC,PATCH 2/2] change __wake_up_parent() to use filtered
	wakeup

> > Agreed.  The not-right case I had in mind was do_notify_parent_cldstop
> > where maybe it could be ->real_parent of the untraced group_leader.
> 
> Hmm. Could you explain?
> 
> I feel I missed something, but can't understand.

Sorry, it wasn't very clear.  (I guess I should have said "traced group
leader", though that would not have been much more obvious.)

do_notify_parent_cldstop:

	if (task_ptrace(tsk))
		parent = tsk->parent;
	else {
		tsk = tsk->group_leader;
		parent = tsk->real_parent;
	}
	...
	__wake_up_parent(tsk, parent);

In the "else" case, parent is not necessarily tsk->parent.  That is, if
an untraced thread calls do_notify_parent_cldstop() but its group_leader
is ptrace_reparented().  Then waitee->group_leader->real_parent is who
gets the wakeup, but __wake_up_parent->child_wait_wakeup would check
only waiter == waitee->group_leader->parent.


Thanks,
Roland
--
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