diff options
| author | Matheus Tavares <matheus.bernardino@usp.br> | 2020-01-30 17:32:23 -0300 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2020-01-31 10:45:39 -0800 |
| commit | b98d18858187eb926912d5199533a6d2a14d5007 (patch) | |
| tree | 11390f92d70b5c1f1b185004e4c394203768a712 /builtin | |
| parent | 2dcde20e1c55fc2e3f9e9e6d48e93c39ec5661d2 (diff) | |
| download | git-b98d18858187eb926912d5199533a6d2a14d5007.tar.gz | |
sha1-file: allow check_object_signature() to handle any repo
Some callers of check_object_signature() can work on arbitrary
repositories, but the repo does not get passed to this function.
Instead, the_repository is always used internally. To fix possible
inconsistencies, allow the function to receive a struct repository and
make those callers pass on the repo being handled.
Signed-off-by: Matheus Tavares <matheus.bernardino@usp.br>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin')
| -rw-r--r-- | builtin/fast-export.c | 3 | ||||
| -rw-r--r-- | builtin/index-pack.c | 5 | ||||
| -rw-r--r-- | builtin/mktag.c | 7 |
3 files changed, 10 insertions, 5 deletions
diff --git a/builtin/fast-export.c b/builtin/fast-export.c index dbec4df92b..25386b34d3 100644 --- a/builtin/fast-export.c +++ b/builtin/fast-export.c @@ -293,7 +293,8 @@ static void export_blob(const struct object_id *oid) buf = read_object_file(oid, &type, &size); if (!buf) die("could not read blob %s", oid_to_hex(oid)); - if (check_object_signature(oid, buf, size, type_name(type)) < 0) + if (check_object_signature(the_repository, oid, buf, size, + type_name(type)) < 0) die("oid mismatch in blob %s", oid_to_hex(oid)); object = parse_object_buffer(the_repository, oid, type, size, buf, &eaten); diff --git a/builtin/index-pack.c b/builtin/index-pack.c index 0183610a76..acdda17d84 100644 --- a/builtin/index-pack.c +++ b/builtin/index-pack.c @@ -1384,8 +1384,9 @@ static void fix_unresolved_deltas(struct hashfile *f) if (!base_obj->data) continue; - if (check_object_signature(&d->oid, base_obj->data, - base_obj->size, type_name(type))) + if (check_object_signature(the_repository, &d->oid, + base_obj->data, base_obj->size, + type_name(type))) die(_("local object %s is corrupt"), oid_to_hex(&d->oid)); base_obj->obj = append_obj_to_pack(f, d->oid.hash, base_obj->data, base_obj->size, type); diff --git a/builtin/mktag.c b/builtin/mktag.c index 6fb7dc8578..4982d3a93e 100644 --- a/builtin/mktag.c +++ b/builtin/mktag.c @@ -29,8 +29,11 @@ static int verify_object(const struct object_id *oid, const char *expected_type) const struct object_id *repl = lookup_replace_object(the_repository, oid); if (buffer) { - if (type == type_from_string(expected_type)) - ret = check_object_signature(repl, buffer, size, expected_type); + if (type == type_from_string(expected_type)) { + ret = check_object_signature(the_repository, repl, + buffer, size, + expected_type); + } free(buffer); } return ret; |
