Morten Welinder [off-list ref] wrote:
quoted
+ 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.