Re: [PATCH 0/2] kvm: use anon_inode_getfd() with O_CLOEXEC flag

From: Gleb Natapov
Date: Mon Aug 26 2013 - 06:20:52 EST


On Sat, Aug 24, 2013 at 10:14:06PM +0200, Yann Droneaud wrote:
> Hi,
>
> Following a patchset asking to change calls to get_unused_flag() [1]
> to use O_CLOEXEC, Alex Williamson [2][3] decided to change VFIO
> to use the flag.
>
> Since it's a related subsystem to KVM, using O_CLOEXEC for
> file descriptors created by KVM might be applicable too.
>
> I'm suggesting to change calls to anon_inode_getfd() to use O_CLOEXEC
> as default flag.
>
> This patchset should be reviewed to not break existing userspace program.
>
> BTW, if it's not applicable, I would suggest that new ioctls be added to
> KVM subsystem, those ioctls would have a "flag" field added to their arguments.
> Such "flag" would let userspace choose the open flag to use.
> See for example other APIs using anon_inode_getfd() such as fanotify,
> inotify, signalfd and timerfd.
>
> You might be interested to read:
>
> - Secure File Descriptor Handling (Ulrich Drepper, 2008)
> http://udrepper.livejournal.com/20407.html
>
> - Excuse me son, but your code is leaking !!! (Dan Walsh, March 2012)
> http://danwalsh.livejournal.com/53603.html
>
Applied, thanks.

> Regards.
>
> [1] http://lkml.kernel.org/r/cover.1376327678.git.ydroneaud@xxxxxxxxxx
> [2] http://lkml.kernel.org/r/1377186804.25163.17.camel@xxxxxxxxxxx
> [3] http://lkml.kernel.org/r/20130822171744.1297.13711.stgit@xxxxxxxxxx
>
> Yann Droneaud (2):
> kvm: use anon_inode_getfd() with O_CLOEXEC flag
> ppc: kvm: use anon_inode_getfd() with O_CLOEXEC flag
>
> arch/powerpc/kvm/book3s_64_mmu_hv.c | 2 +-
> arch/powerpc/kvm/book3s_64_vio.c | 2 +-
> arch/powerpc/kvm/book3s_hv.c | 2 +-
> virt/kvm/kvm_main.c | 6 +++---
> 4 files changed, 6 insertions(+), 6 deletions(-)
>
> --
> 1.8.3.1

--
Gleb.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/