credential: ignore SIGPIPE when writing to credential helpers
commita0d51e8d0e866538632b16e13a5f51bc80eacf48
authorErik E Brady <brady@cisco.com>
Thu, 29 Mar 2018 18:00:56 +0000 (29 11:00 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 29 Mar 2018 22:33:55 +0000 (29 15:33 -0700)
tree6eef9f98aac9dc3f3c86e7009d5aac6378b78c39
parentd32eb83c1db7d0a8bb54fe743c6d1dd674d372c5
credential: ignore SIGPIPE when writing to credential helpers

The credential subsystem can trigger SIGPIPE when writing to an
external helper if that helper closes its stdin before reading the
whole input. Normally this is rare, since helpers would need to read
that input to make a decision about how to respond, but:

1. It's reasonable to configure a helper which only handles "get"
   while ignoring "store".  Such a handler might not read stdin
   for "store", thereby rapidly closing stdin upon helper exit.

2. A broken or misbehaving helper might exit immediately. That's an
   error, but it's not reasonable for it to take down the parent Git
   process with SIGPIPE.

Even with such a helper, seeing this problem should be rare. Getting
SIGPIPE requires the helper racily exiting before we've written the
fairly small credential output.

Signed-off-by: Erik E Brady <brady@cisco.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
credential.c