Re: [PATCH 2/5] daemon: if one of the standard fds is missing open it to /dev/null
- From
- Matthias Lederhofer <matled@gmx.net>
- Date
- Jul 13, 2006, 16:03 UTC
- Message-ID
- <E1G13ew-0005Iv-ST@moooo.ath.cx>
- In-Reply-To
- <118833cc0607130837u30c58d53lc785f56d45ef970c@mail.gmail.com>
Morten Welinder <mwelinder@gmail.com> wrote:
Show 7 quoted lines
> >+ if (devnull == -1 &&
> >+ (devnull = open("/dev/null", O_RDWR, 0)) == -1)
> >+ die("open /dev/null failed: %s", strerror(errno));
> >+ if (dup2(devnull, i) != i)
> >+ die("dup2 failed: %s", strerror(errno));
>
> "die" probably won't work well at this point.At least with --syslog there will be an error message in the logs. If the user does not use --syslog and closes fd 2 it is just his own fault imho.
> Should git (and most other programs) do something like this in general? > fprintf will happily write to fd=2 regardless of whether that is some critical > file you opened.
I thought of that too. It might be not that important because I cannot think of anyway that this could happen accidentally or could be exploited.