On Sun, Aug 2, 2020 at 7:40 AM René Scharfe <l.s.r@xxxxxx> wrote: > @@ -1443,10 +1446,15 @@ int midx_repack(struct repository *r, const char *object_dir, size_t batch_size, > continue; > > nth_midxed_object_oid(&oid, m, i); > - xwrite(cmd.in, oid_to_hex(&oid), the_hash_algo->hexsz); > - xwrite(cmd.in, "\n", 1); > + fprintf(cmd_in, "%s\n", oid_to_hex(&oid)); > + } > + > + if (fclose(cmd_in)) { > + error_errno(_("could not close stdin of pack-objects")); > + result = 1; > + finish_command(&cmd); > + goto cleanup; > } > - close(cmd.in); > > if (finish_command(&cmd)) { > error(_("could not finish pack-objects")); > -- > 2.28.0 Here, we don't have any explicit errno checking, but of course error_errno() uses errno. This too needs an ferror() (or fflush()) test before the final fclose(), and then we just need to use plain error(). Otherwise you'll need the clumsier test-after-each-fprintf() and an explicit final fflush()-and-test. Chris