diff --git a/builtin/send-pack.c b/builtin/send-pack.c index 8e6c110c0d..4ac2ca984f 100644 --- a/builtin/send-pack.c +++ b/builtin/send-pack.c @@ -101,7 +101,6 @@ static int pack_objects(int fd, struct ref *refs, struct extra_have_objects *ext free(buf); close(po.out); po.out = -1; - close(fd); } if (finish_command(&po)) @@ -343,6 +342,8 @@ int send_pack(struct send_pack_args *args, if (pack_objects(out, remote_refs, extra_have, args) < 0) { for (ref = remote_refs; ref; ref = ref->next) ref->status = REF_STATUS_NONE; + if (args->stateless_rpc) + close(out); if (use_sideband) finish_async(&demux); return -1;