lkml.org 
[lkml]   [2014]   [Jan]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCHv5 7/7] file: remove macro get_unused_fd()
    Date
    Macro get_unused_fd() allocates a file descriptor without enabling
    close-on-exec: it calls function get_unused_fd_flags() without
    O_CLOEXEC flag.

    This can be seen as an unsafe default: in most case close-on-exec
    should be enabled to not leak file descriptor across exec().

    This patch removes get_unused_fd() instead of updating it to use
    O_CLOEXEC so that out of tree modules won't be affect by a runtime
    behavor change which might introduce other kind of bug. It's better
    to catch the change at build time, making it easier to fix.

    Removing the macro will also promote use of get_unused_fd_flags()
    (or anon_inode_getfd()) with flags provided by userspace. Or, if
    flags cannot be given by userspace, with flags set to O_CLOEXEC set
    by default.

    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
    Link: http://lkml.kernel.org/r/cover.1388952061.git.ydroneaud@opteya.com
    ---
    include/linux/file.h | 1 -
    1 file changed, 1 deletion(-)

    diff --git a/include/linux/file.h b/include/linux/file.h
    index cbacf4faf447..866600259c07 100644
    --- a/include/linux/file.h
    +++ b/include/linux/file.h
    @@ -63,7 +63,6 @@ extern void set_close_on_exec(unsigned int fd, int flag);
    extern bool get_close_on_exec(unsigned int fd);
    extern void put_filp(struct file *);
    extern int get_unused_fd_flags(unsigned flags);
    -#define get_unused_fd() get_unused_fd_flags(0)
    extern void put_unused_fd(unsigned int fd);

    extern void fd_install(unsigned int fd, struct file *file);
    --
    1.8.4.2


    \
     
     \ /
      Last update: 2014-01-05 22:21    [W:4.103 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site