pack-write: die on error in write_promisor_file()

write_promisor_file() already uses xfopen(), so it would die
if the file cannot be opened for writing. To be consistent
with this behavior and not overlook issues, let's also die if
there are errors when we are actually writing to the file.

Suggested-by: Jeff King <peff@peff.net>
Suggested-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Christian Couder 2021-01-14 16:50:16 +01:00 коммит произвёл Junio C Hamano
Родитель 33add2ad7d
Коммит 7c99bc23fc
1 изменённых файлов: 6 добавлений и 2 удалений

Просмотреть файл

@ -371,11 +371,15 @@ void finish_tmp_packfile(struct strbuf *name_buffer,
void write_promisor_file(const char *promisor_name, struct ref **sought, int nr_sought)
{
int i;
int i, err;
FILE *output = xfopen(promisor_name, "w");
for (i = 0; i < nr_sought; i++)
fprintf(output, "%s %s\n", oid_to_hex(&sought[i]->old_oid),
sought[i]->name);
fclose(output);
err = ferror(output);
err |= fclose(output);
if (err)
die(_("could not write '%s' promisor file"), promisor_name);
}