diff options
| author | Christian Couder <chriscool@tuxfamily.org> | 2009-01-23 10:07:10 +0100 | 
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2009-05-31 17:02:59 -0700 | 
| commit | 0e87c36763a384d5bf6fae4bda44fd035c0b75ff (patch) | |
| tree | 0c8a9ed3598faf889eae8bc733ab65190aadd82d /object.c | |
| parent | f5552aee39d664bb8774c205341abd6db74b38d3 (diff) | |
| download | git-0e87c36763a384d5bf6fae4bda44fd035c0b75ff.tar.gz | |
object: call "check_sha1_signature" with the replacement sha1
Otherwise we get a "sha1 mismatch" error for replaced objects.
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'object.c')
| -rw-r--r-- | object.c | 9 | 
1 files changed, 5 insertions, 4 deletions
@@ -188,17 +188,18 @@ struct object *parse_object(const unsigned char *sha1)  	unsigned long size;  	enum object_type type;  	int eaten; -	void *buffer = read_sha1_file(sha1, &type, &size); +	const unsigned char *repl; +	void *buffer = read_sha1_file_repl(sha1, &type, &size, &repl);  	if (buffer) {  		struct object *obj; -		if (check_sha1_signature(sha1, buffer, size, typename(type)) < 0) { +		if (check_sha1_signature(repl, buffer, size, typename(type)) < 0) {  			free(buffer); -			error("sha1 mismatch %s\n", sha1_to_hex(sha1)); +			error("sha1 mismatch %s\n", sha1_to_hex(repl));  			return NULL;  		} -		obj = parse_object_buffer(sha1, type, size, buffer, &eaten); +		obj = parse_object_buffer(repl, type, size, buffer, &eaten);  		if (!eaten)  			free(buffer);  		return obj;  | 
