Skip to content

Commit eb726f2

Browse files
committed
fsck: do not abort upon finding an empty blob
Asking fwrite() to write one item of size bytes results in fwrite() reporting "I wrote zero item", when size is zero. Instead, we could ask it to write "size" items of 1 byte and expect it to report that "I wrote size items" when it succeeds, with any value of size, including zero. Noticed and reported by BJ Hargrave. Signed-off-by: Junio C Hamano <[email protected]>
1 parent 509d597 commit eb726f2

File tree

1 file changed

+3
-6
lines changed

1 file changed

+3
-6
lines changed

builtin/fsck.c

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -231,12 +231,9 @@ static void check_unreachable_object(struct object *obj)
231231
unsigned long size;
232232
char *buf = read_sha1_file(obj->sha1,
233233
&type, &size);
234-
if (buf) {
235-
if (fwrite(buf, size, 1, f) != 1)
236-
die_errno("Could not write '%s'",
237-
filename);
238-
free(buf);
239-
}
234+
if (buf && fwrite(buf, 1, size, f) != size)
235+
die_errno("Could not write '%s'", filename);
236+
free(buf);
240237
} else
241238
fprintf(f, "%s\n", sha1_to_hex(obj->sha1));
242239
if (fclose(f))

0 commit comments

Comments
 (0)