mirror of
https://github.com/git/git.git
synced 2024-11-30 21:44:02 +08:00
object-file: handle compat objects in check_object_signature
Update check_object_signature to find the hash algorithm the exising signature uses, and to use the same hash algorithm when recomputing it to check the signature is valid. This will be useful when teaching git ls-tree to display objects encoded with the compat hash algorithm. Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
efed687edc
commit
8d691757b8
@ -1094,9 +1094,11 @@ int check_object_signature(struct repository *r, const struct object_id *oid,
|
|||||||
void *buf, unsigned long size,
|
void *buf, unsigned long size,
|
||||||
enum object_type type)
|
enum object_type type)
|
||||||
{
|
{
|
||||||
|
const struct git_hash_algo *algo =
|
||||||
|
oid->algo ? &hash_algos[oid->algo] : r->hash_algo;
|
||||||
struct object_id real_oid;
|
struct object_id real_oid;
|
||||||
|
|
||||||
hash_object_file(r->hash_algo, buf, size, type, &real_oid);
|
hash_object_file(algo, buf, size, type, &real_oid);
|
||||||
|
|
||||||
return !oideq(oid, &real_oid) ? -1 : 0;
|
return !oideq(oid, &real_oid) ? -1 : 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user