All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ben Myers <bpm@sgi.com>
To: Yann Droneaud <ydroneaud@opteya.com>
Cc: linux-kernel@vger.kernel.org, xfs@oss.sgi.com
Subject: Re: [PATCH 10/13] xfs: use get_unused_fd_flags(0) instead of get_unused_fd()
Date: Mon, 8 Jul 2013 17:41:33 -0500	[thread overview]
Message-ID: <20130708224133.GA23250@sgi.com> (raw)
In-Reply-To: <8d21b76c621dbfc59b2dbbfc933f96170835304d.1372777600.git.ydroneaud@opteya.com>

On Tue, Jul 02, 2013 at 06:39:34PM +0200, Yann Droneaud wrote:
> Macro get_unused_fd() is used to allocate a file descriptor with
> default flags. Those default flags (0) can be "unsafe":
> O_CLOEXEC must be used by default to not leak file descriptor
> across exec().
> 
> Instead of macro get_unused_fd(), functions anon_inode_getfd()
> or get_unused_fd_flags() should be used with flags given by userspace.
> If not possible, flags should be set to O_CLOEXEC to provide userspace
> with a default safe behavor.
> 
> In a further patch, get_unused_fd() will be removed so that
> new code start using anon_inode_getfd() or get_unused_fd_flags()
> with correct flags.
> 
> This patch replaces calls to get_unused_fd() with equivalent call to
> get_unused_fd_flags(0) to preserve current behavor for existing code.
> 
> The hard coded flag value (0) should be reviewed on a per-subsystem basis,
> and, if possible, set to O_CLOEXEC.
> 
> Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
>
> ---
>  fs/xfs/xfs_ioctl.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c
> index 5e99968..dc5b659 100644
> --- a/fs/xfs/xfs_ioctl.c
> +++ b/fs/xfs/xfs_ioctl.c
> @@ -248,7 +248,7 @@ xfs_open_by_handle(
>  		goto out_dput;
>  	}
>  
> -	fd = get_unused_fd();
> +	fd = get_unused_fd_flags(0);

O_CLOEXEC should be fine in this case.

Reviewed-by: Ben Myers <bpm@sgi.com>

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

WARNING: multiple messages have this Message-ID (diff)
From: Ben Myers <bpm@sgi.com>
To: Yann Droneaud <ydroneaud@opteya.com>
Cc: linux-kernel@vger.kernel.org, xfs@oss.sgi.com
Subject: Re: [PATCH 10/13] xfs: use get_unused_fd_flags(0) instead of get_unused_fd()
Date: Mon, 8 Jul 2013 17:41:33 -0500	[thread overview]
Message-ID: <20130708224133.GA23250@sgi.com> (raw)
In-Reply-To: <8d21b76c621dbfc59b2dbbfc933f96170835304d.1372777600.git.ydroneaud@opteya.com>

On Tue, Jul 02, 2013 at 06:39:34PM +0200, Yann Droneaud wrote:
> Macro get_unused_fd() is used to allocate a file descriptor with
> default flags. Those default flags (0) can be "unsafe":
> O_CLOEXEC must be used by default to not leak file descriptor
> across exec().
> 
> Instead of macro get_unused_fd(), functions anon_inode_getfd()
> or get_unused_fd_flags() should be used with flags given by userspace.
> If not possible, flags should be set to O_CLOEXEC to provide userspace
> with a default safe behavor.
> 
> In a further patch, get_unused_fd() will be removed so that
> new code start using anon_inode_getfd() or get_unused_fd_flags()
> with correct flags.
> 
> This patch replaces calls to get_unused_fd() with equivalent call to
> get_unused_fd_flags(0) to preserve current behavor for existing code.
> 
> The hard coded flag value (0) should be reviewed on a per-subsystem basis,
> and, if possible, set to O_CLOEXEC.
> 
> Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
>
> ---
>  fs/xfs/xfs_ioctl.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c
> index 5e99968..dc5b659 100644
> --- a/fs/xfs/xfs_ioctl.c
> +++ b/fs/xfs/xfs_ioctl.c
> @@ -248,7 +248,7 @@ xfs_open_by_handle(
>  		goto out_dput;
>  	}
>  
> -	fd = get_unused_fd();
> +	fd = get_unused_fd_flags(0);

O_CLOEXEC should be fine in this case.

Reviewed-by: Ben Myers <bpm@sgi.com>

  reply	other threads:[~2013-07-08 22:41 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-02 16:39 [PATCH 00/13] Getting rid of get_unused_fd() Yann Droneaud
2013-07-02 16:39 ` Yann Droneaud
2013-07-02 16:39 ` Yann Droneaud
2013-07-02 16:39 ` [PATCH 01/13] ia64: use get_unused_fd_flags(0) instead " Yann Droneaud
2013-07-02 16:39   ` Yann Droneaud
2013-07-02 16:39 ` [PATCH 02/13] ppc/cell: " Yann Droneaud
2014-01-12 23:06   ` Benjamin Herrenschmidt
2014-01-12 23:06     ` Benjamin Herrenschmidt
2014-01-13  9:30     ` Yann Droneaud
2014-01-13  9:30       ` Yann Droneaud
2014-01-20 17:01       ` Yann Droneaud
2014-01-20 17:01         ` Yann Droneaud
2013-07-02 16:39 ` [PATCH 03/13] infiniband: " Yann Droneaud
     [not found]   ` <651e35493f6a970610d35785e1972ec9e2426abf.1372777600.git.ydroneaud-RlY5vtjFyJ3QT0dZR+AlfA@public.gmane.org>
2013-07-08 18:23     ` Roland Dreier
2013-07-08 18:23       ` Roland Dreier
2013-07-08 21:26       ` Yann Droneaud
2013-07-02 16:39 ` [PATCH 04/13] android/sw_sync: " Yann Droneaud
2013-07-02 22:22   ` Erik Gilling
2013-07-02 16:39 ` [PATCH 05/13] android/sync: " Yann Droneaud
2013-07-02 22:22   ` Erik Gilling
2013-07-02 16:39 ` [PATCH 06/13] vfio: " Yann Droneaud
2013-07-02 16:39 ` [PATCH 07/13] binfmt_misc: " Yann Droneaud
2013-07-02 16:39 ` [PATCH 08/13] file: " Yann Droneaud
2013-07-02 16:39 ` [PATCH 09/13] fanotify: " Yann Droneaud
2013-07-02 16:39 ` [PATCH 10/13] xfs: " Yann Droneaud
2013-07-02 16:39   ` Yann Droneaud
2013-07-08 22:41   ` Ben Myers [this message]
2013-07-08 22:41     ` Ben Myers
2013-07-09 20:53     ` Ben Myers
2013-07-09 20:53       ` Ben Myers
2013-07-10 10:00       ` Yann Droneaud
2013-07-10 10:00         ` Yann Droneaud
2013-07-11  0:36         ` Dave Chinner
2013-07-11  0:36           ` Dave Chinner
2013-07-02 16:39 ` [PATCH 11/13] events: " Yann Droneaud
2013-07-02 16:39 ` [PATCH 12/13] sctp: " Yann Droneaud
2013-07-02 16:39   ` Yann Droneaud
2013-07-02 17:50   ` Vlad Yasevich
2013-07-02 17:50     ` Vlad Yasevich
2013-07-02 23:14     ` David Miller
2013-07-02 23:14       ` David Miller
2013-07-02 16:39 ` [PATCH 13/13] file: remove get_unused_fd() Yann Droneaud

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=20130708224133.GA23250@sgi.com \
    --to=bpm@sgi.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=xfs@oss.sgi.com \
    --cc=ydroneaud@opteya.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.