avoid double close of descriptors handed to run_command
commit28bf9429ef2e1534be8d3a59ad236834be542b86
authorJeff King <peff@peff.net>
Tue, 24 Jun 2014 09:45:46 +0000 (24 05:45 -0400)
committerJunio C Hamano <gitster@pobox.com>
Wed, 25 Jun 2014 22:27:24 +0000 (25 15:27 -0700)
tree29036aa31a53372b6b37bb2b0ad57a04a2f7f816
parent3cc9d87710b20c86252809e068fe309f6bb7ecc2
avoid double close of descriptors handed to run_command

When a file descriptor is given to run_command via the
"in", "out", or "err" parameters, run_command takes
ownership. The descriptor will be closed in the parent
process whether the process is spawned successfully or not,
and closing it again is wrong.

In practice this has not caused problems, because we usually
close() right after start_command returns, meaning no other
code has opened a descriptor in the meantime. So we just get
EBADF and ignore it (rather than accidentally closing
somebody else's descriptor!).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/replace.c
daemon.c