On Fri, Jul 15, 2016 at 11:19:23AM -0700, Junio C Hamano wrote: > Jeff King <peff@xxxxxxxx> writes: > > > + /* > > + * If non-zero, send error messages to this descriptor rather > > + * than stderr. The descriptor is closed before check_connected > > + * returns. > > + */ > > + int err_fd; > > Theoretically speaking it may be possible that a caller may want to > write to fd#0 if it closed the standard input before creating the > output channel for multiplexing into a sideband, but I think this > design strikes a good balance between the theoretical correctness > and usability. Using err_fd == -1 as "no redirect" may allow the > caller to redirect the errors to fd#0, but that forces normal users > to explicitly set this field to -1. Yep, I had all of those thoughts while writing it, but decided that "0" was worth it to keep the initialization simple (though since we have CHECK_CONNECTED_INIT, the "-1" would only have to appear there). What decided me were two things: - directing to fd#0 really is theoretical; you'd have to close stdin, and you shouldn't do that. You should redirect it from /dev/null (and our sanitize_stdfds() makes sure that we're not surprised by any callers) - "struct child_process" uses a similar zero-initialization -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html