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]
Message-ID: <alpine.DEB.2.00.1002150945460.7390@makko.or.mcafeemobile.com>
Date:	Mon, 15 Feb 2010 09:50:22 -0800 (PST)
From:	Davide Libenzi <davidel@...ilserver.org>
To:	Eric Dumazet <eric.dumazet@...il.com>
cc:	Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
	Andrew Morton <akpm@...ux-foundation.org>,
	stephane.thiell@....fr
Subject: Re: [patch/rfc] Make poll/select report error (POLLNVAL and EBADF)
 for unsupported files

On Mon, 15 Feb 2010, Eric Dumazet wrote:

> Le dimanche 14 février 2010 à 14:27 -0800, Davide Libenzi a écrit :
> > Currently poll and select consider a non poll-supported file as one with 
> > full event mask set, instead of reporting proper error to the caller.
> > This behavior can fool the caller of proper functionality being returned, 
> > while instead no valid event was processed/read from the device.
> > This came out linked to this bug report:
> > 
> > http://bugzilla.kernel.org/show_bug.cgi?id=15272
> > 
> > IMHO, it'd be more adequate to report proper error code, for files that do 
> > not support f_op->poll(), but then I am also not sure how much breakage 
> > can this bring to existing (already broken "in just the right way") 
> > applications.
> > Untested, discussion-only, patch.
> > 
> > 
> > Signed-off-by: Davide Libenzi <davidel@...ilserver.org>
> > 
> > 
> > - Davide
> 
> Hmm, according to POSIX :
> 
> 	The poll() function shall support regular files, terminal and
> pseudo-terminal devices, FIFOs, pipes, sockets ...
> 
> 	Regular files shall always poll TRUE for reading and writing.
> 
> 
> So unless I missed something, this patch could break some conformant
> applications.

If that's POSIX, than the patch is no good.  I missed the part on the 
regular files being always ready, which explaqins why the code is as it is 
right now.


> In particular, if an application is polling() on stdin (usually a tty),
> and other 'files', what's happening if we do :
> 
> cat replay_file | application
> 
> Either it wont read stdin, or application exits without reading its
> input.

That case would be fine, since that's a pipe.
This will behave differently:

$ application < replay_file

Anyway, since POSIX states the above, the patch cannot apply.


- Davide


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ