From: Edgar Toernig <froese@gmx.de>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Chase Venters <chase.venters@clientec.com>,
Pekka Enberg <penberg@cs.helsinki.fi>,
Pavel Machek <pavel@ucw.cz>,
linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
akpm@osdl.org, viro@zeniv.linux.org.uk, tytso@mit.edu,
tigran@veritas.com
Subject: Re: [RFC/PATCH] revoke/frevoke system calls V2
Date: Wed, 9 Aug 2006 10:41:59 +0200 [thread overview]
Message-ID: <20060809104159.1f1737d3.froese@gmx.de> (raw)
In-Reply-To: <1155039338.5729.21.camel@localhost.localdomain>
Alan Cox wrote:
>
> Ar Llu, 2006-08-07 am 17:24 -0500, ysgrifennodd Chase Venters:
> > implementation is crude. "EBADF" is not something that applications are
> > taught to expect. Someone correct me if I'm wrong, but I can think of no
> > situation under which a file descriptor currently gets yanked out from
> > under your feet -- you should always have to formally abandon it with
> > close().
>
> The file descriptor is not pulled from under you, the access to it is.
> This is exactly what occurs today when a tty is hung up.
If I read the code correctly, the behaviour for hung up ttys is completely
different: read returns EOF, write returns EIO, select/poll/epoll return
ready, close works. As rather boring but totally sane behaviour for an fd.
But after revoke you get EBADF for any operation, even select or close.
The fd becomes nearly indistinguishable from a really closed fd (the only
difference is that the fd-number won't be reused (potentional DoS)).
And IMHO that's insane that a regular user may close fds in someone else's
processes (or munmap some of its memory). I already see people trying
to exploit bugs in system services:
for (;;) revoke("index.html");
for (;;) revoke("some_print_job");
for (;;) revoke("some_mail");
Ciao, ET.
next prev parent reply other threads:[~2006-08-09 8:42 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-07-27 14:25 Pekka J Enberg
2006-07-27 15:07 ` Alan Cox
2006-07-27 15:33 ` Pekka Enberg
2006-07-27 16:09 ` Alan Cox
2006-07-27 16:01 ` Pekka J Enberg
2006-07-27 16:30 ` Alan Cox
2006-07-27 17:07 ` Pekka J Enberg
2006-07-27 18:27 ` Pekka Enberg
2006-07-27 16:41 ` Ulrich Drepper
2006-07-27 17:05 ` Pekka J Enberg
2006-07-27 17:13 ` Ulrich Drepper
2006-07-27 17:33 ` H. Peter Anvin
2006-07-27 17:44 ` Ulrich Drepper
2006-07-27 18:00 ` H. Peter Anvin
2006-07-27 17:33 ` Alan Cox
2006-07-27 17:33 ` O_CAREFUL flag to disable open() side effects H. Peter Anvin
2006-07-27 17:43 ` Russell King
2006-07-27 17:50 ` Ulrich Drepper
2006-07-27 18:05 ` Alan Cox
2006-07-27 18:03 ` H. Peter Anvin
2006-07-27 18:14 ` Joshua Hudson
2006-08-05 21:05 ` [RFC/PATCH] revoke/frevoke system calls V2 Pavel Machek
2006-07-27 18:06 ` Petr Baudis
2006-07-27 18:10 ` Pekka Enberg
2006-07-27 19:30 ` Horst H. von Brand
2006-07-28 3:40 ` Pekka J Enberg
2006-07-27 18:34 ` Alan Cox
2006-08-05 12:29 ` Pavel Machek
2006-08-07 5:42 ` Pekka J Enberg
2006-08-07 8:17 ` Edgar Toernig
2006-08-07 9:51 ` Pekka Enberg
2006-08-07 20:41 ` Edgar Toernig
2006-08-07 22:24 ` Chase Venters
2006-08-08 12:15 ` Alan Cox
2006-08-09 8:41 ` Edgar Toernig [this message]
2006-08-09 10:39 ` Alan Cox
2006-08-09 18:00 ` Edgar Toernig
2006-08-09 18:36 ` Alan Cox
2006-08-09 19:13 ` Pekka Enberg
2006-08-09 20:08 ` Edgar Toernig
2006-08-09 21:29 ` Edgar Toernig
2006-08-11 7:52 ` Helge Hafting
2006-08-07 22:52 ` David Wagner
2006-08-07 22:56 ` Daniel Jacobowitz
2006-08-07 23:12 ` Chase Venters
2006-08-08 12:16 ` Pekka Enberg
2006-08-08 16:02 ` Kari Hurtta
2006-08-08 21:54 ` Theodore Tso
2006-08-09 6:32 ` Pekka Enberg
2006-08-08 12:13 ` Alan Cox
2006-08-08 12:29 ` Alan Cox
2006-08-08 12:31 ` Pekka Enberg
2006-08-08 12:57 ` Pavel Machek
2006-08-08 14:14 ` Alan Cox
2006-08-08 13:57 ` Pavel Machek
2006-08-09 8:41 ` Edgar Toernig
2006-08-09 10:42 ` Alan Cox
2006-08-09 18:00 ` Edgar Toernig
2006-08-09 18:35 ` Alan Cox
2006-08-09 19:14 ` Pekka Enberg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060809104159.1f1737d3.froese@gmx.de \
--to=froese@gmx.de \
--cc=akpm@osdl.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=chase.venters@clientec.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pavel@ucw.cz \
--cc=penberg@cs.helsinki.fi \
--cc=tigran@veritas.com \
--cc=tytso@mit.edu \
--cc=viro@zeniv.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome