On Tue, Aug 11, 2020 at 07:15:03PM +0200, René Scharfe wrote: > 2997178ee6 (upload-pack: split check_unreachable() in two, prep for > get_reachable_list(), 2016-06-12) moved most code of has_unreachable() > into the new function do_reachable_revlist(). The latter takes care to > ignore SIGPIPE during its operations, and restores the original signal > handler before returning. > > However, a sigchain_pop(SIGPIPE) call remained in the error handling > code of has_unreachable(), which does nothing because the stack is > empty after do_reachable_revlist() cleaned up after itself. Remove it. Thanks for noticing. Your analysis seems correct to me after a quick inspection of the code, so this has my: Reviewed-by: Taylor Blau <me@xxxxxxxxxxxx> > Signed-off-by: René Scharfe <l.s.r@xxxxxx> > --- > upload-pack.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/upload-pack.c b/upload-pack.c > index d087113d23e..1b068da0d26 100644 > --- a/upload-pack.c > +++ b/upload-pack.c > @@ -731,7 +731,6 @@ static int has_unreachable(struct object_array *src, enum allow_uor allow_uor) > return 0; > > error: > - sigchain_pop(SIGPIPE); > if (cmd.out >= 0) > close(cmd.out); > return 1; > -- > 2.28.0 Thanks, Taylor