Re: [PATCH 1/2] dup() the input fd for fast-import used for remote helpers
- Date: Wed, 15 May 2019 23:28:38 -0400
- From: Jeff King <peff@xxxxxxxx>
- Subject: Re: [PATCH 1/2] dup() the input fd for fast-import used for remote helpers
On Thu, May 16, 2019 at 09:37:35AM +0900, Mike Hommey wrote:
> When a remote helper exposes the "import" capability, stdout of the
> helper is sent to stdin of a new fast-import process. This is done by
> setting the corresponding child_process's in field to the value of the
> out field of the helper child_process.
> The child_process API is defined to close the file descriptors it's
> given when calling start_command. This means when start_command is
> called for the fast-import process, its input fd (the output fd of the
> helper), is closed.
> But when the transport helper is later destroyed, in disconnect_helper,
> its input and output are closed, which means close() is called with
> an invalid fd (since it was already closed as per above). Or worse, with
> a valid fd owned by something else (since fd numbers can be reused).
I think this strategy is OK, as explained in my other email.