Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20211218172646.GP7074@brightrain.aerifal.cx>
Date: Sat, 18 Dec 2021 12:26:46 -0500
From: Rich Felker <dalias@...c.org>
To: Markus Wichmann <nullplan@....net>
Cc: musl@...ts.openwall.com
Subject: Re: Feasibility of FD_CLOEXEC on all streams

On Sat, Dec 18, 2021 at 12:14:15PM -0500, Rich Felker wrote:
> On Sat, Dec 18, 2021 at 05:33:20PM +0100, Markus Wichmann wrote:
> > Hi all,
> > 
> > I was recently reading the source code of popen(), and noticed that it
> > has to iterate over all open files to close all the open pipe FDs the
> > child might inherit. And that made me wonder:
> > 
> > 1. Does POSIX allow for all FILE streams to have FD_CLOEXEC applied by
> > default?
> 
> No. Accessing fileno(f) is permissible subject to following the rules
> for active handle:
> 
> https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_05_01
> 
> and that entails being able to use them according to the rules for how
> fds are inherited across exec.

Also, the POSIX spec for fopen is rather explicit:

    "[CX] The file descriptor associated with the opened stream shall
    be allocated and opened as if by a call to open() with the
    following flags: ..."

https://pubs.opengroup.org/onlinepubs/9699919799/functions/fopen.html

Rich

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.