Re: [PATCH] Support empty blob in fsck --lost-found

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



BJ Hargrave <bj@xxxxxxxxxxxxxx> writes:

> diff --git a/builtin/fsck.c b/builtin/fsck.c
> index 5ae0366..ad6d713 100644
> --- a/builtin/fsck.c
> +++ b/builtin/fsck.c
> @@ -232,9 +232,10 @@ static void check_unreachable_object(struct object *obj)
>  				char *buf = read_sha1_file(obj->sha1,
>  						&type, &size);
>  				if (buf) {
> -					if (fwrite(buf, size, 1, f) != 1)
> -						die_errno("Could not write '%s'",
> -							  filename);
> +					if (size > 0)
> +						if (fwrite(buf, size, 1, f) != 1)
> +							die_errno("Could not write '%s'",
> +								  filename);

Funny.

I am sure we fixed a similar breakage elsewhere a few years ago, by
swapping the size and nmemb to the calls (i.e. instead of writing one
block of "size" bytes, you could write "size" blocks of 1-byte) and making
sure fwrite() reports the number of items. IOW

	if (buf && fwrite(buf, 1, size, f) != size)
		die_errno("Could not write '%s'", filename);

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]