Messages in this thread |  | | | Date | Sun, 01 Apr 2012 15:13:31 -0700 | | From | "H. Peter Anvin" <> | | Subject | Re: [PATCH] nextfd(2) |
| |
On 04/01/2012 03:03 PM, H. Peter Anvin wrote: > On 04/01/2012 05:57 AM, Alexey Dobriyan wrote: >> >> * /proc/self/fd is unreliable: >> proc may be unconfigured or not mounted at expected place. >> Looking at /proc/self/fd requires opening directory >> which may not be available due to malicious rlimit drop or ENOMEM situations. >> Not opening directory is equivalent to dumb close(2) loop except slower. >> > > This is really the motivation for this... the real question is how much > functionality is actually available in the system without /proc mounted, > and in particular if this particular subcase is worth optimizing ... > after all, if someone is maliciously setting rlimit, we can just abort > (if someone can set an rlimit they can also force an abort) or revert to > the slow path. >
A few more observations:
- There is a huge backwards compatibility problem with this for a substantial transition period; using /proc/self/fd has worked for a very long time already.
- Your nextfd() system call will require more system calls that the typical case for reading /proc/self/fd, because each getdents() system call handles multiple readdir() invocations.
-hpa
-- H. Peter Anvin, Intel Open Source Technology Center I work for Intel. I don't speak on their behalf.
|  |