Messages in this thread | | | Date | Thu, 31 Oct 2013 19:12:02 +0100 | From | Peter Zijlstra <> | Subject | Re: [PATCH] events: add a flag to perf_event_open() to set O_CLOEXEC |
| |
On Wed, Oct 30, 2013 at 10:35:50PM +0100, Yann Droneaud wrote: > This patch adds PERF_FLAG_FD_CLOEXEC flag for > perf_event_open() syscall. > > perf_event_open() creates a new file descriptor, > but unlike open() syscall, it lack a flag to atomicaly > set close-on-exec (O_CLOEXEC). > > Not using O_CLOEXEC by default and not letting userspace > provide the "open" flags should be avoided: in most case > O_CLOEXEC must be used to not leak file descriptor across > exec(). > > Using O_CLOEXEC when creating a file descriptor allows > userspace to set latter, using fcntl(), without any risk > of race, if the file descriptor is going to be inherited > or not across exec(). > > Link: http://lkml.kernel.org/r/94b641a81a06ba4943cf77e80bc271c8@meuh.org > Link: http://lkml.kernel.org/r/cover.1383121137.git.ydroneaud@opteya.com > Signed-off-by: Yann Droneaud <ydroneaud@opteya.com> > --- > > Hi Peter, > > This patch should replaces > "[PATCH v4 6/7] events: use get_unused_fd_flags(0) instead of get_unused_fd()" > > Please have a look.
I'm still terminally confused as to all of this... Why does it matter what the default is if you can change it with fcntl() ? Also, how can you tell nobody relies on the current behaviour and its therefore safe to change?
| |