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] [day] [month] [year] [list]
Date:	Tue, 22 Aug 2006 20:39:54 +0900
From:	KAMEZAWA Hiroyuki <kamezawa.hiroyu@...fujitsu.com>
To:	Andi Kleen <ak@...e.de>
Cc:	akpm@...l.org, ebiederm@...ssion.com, pj@....com,
	saito.tadashi@...t.fujitsu.com, linux-kernel@...r.kernel.org
Subject: Re: [RFC][PATCH] ps command race fix take2 [4/4] proc_pid_readdir

On 22 Aug 2006 13:11:30 +0200
Andi Kleen <ak@...e.de> wrote:

> KAMEZAWA Hiroyuki <kamezawa.hiroyu@...fujitsu.com> writes:
> 
> > proc_pid_readdir() by list_token.
> > 
> > Remember 'where we are reading' by inserting a token in the list.
> > It seems a bit complicated because of RCU but what we do is very simple.
> > 
> 
> What happens when you have multiple readers at the same time? Can't
> the tokens then be mixed up?
> 
multiple readers will insert their own token to a list. And list_next_rcu_skiptoken()
skips all token (not-data). it's used by next_task().


> >+		/* this small kmalloc() can fail in rare case, but readdir()
> >+		 * is not allowed to return ENOMEM. retrying is reasonable. */
> 
> Who disallows this? Such retry loops are normally discouraged 
> because they can lead to deadlocks in OOM situations.
> I think it would be better to just return ENOMEM.
> 

Hmm, to be honest, not disallowed. but not allowed. The apps don't expect
readdir(3) failed with -ENOMEM. 
But yes, ps command or ls /proc may be caught in the kernel for some time.

-Kame

-
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