mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-28 15:58:29 +00:00
tag: don't allow tags to non-existent objects
These indicate an inconsistency in the repository which we've created, so don't allow them. Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
This commit is contained in:
parent
81234673a1
commit
7bc66a79fa
@ -209,6 +209,9 @@ static int tag_create(
|
||||
return error;
|
||||
}
|
||||
|
||||
if (!git_odb_exists(repo->db, target))
|
||||
return GIT_ENOTFOUND;
|
||||
|
||||
/* Try to find out what the type is */
|
||||
if (target_type == GIT_OBJ_ANY) {
|
||||
size_t _unused;
|
||||
|
@ -119,7 +119,7 @@ BEGIN_TEST(write0, "write a tag to the repository and read it again")
|
||||
|
||||
END_TEST
|
||||
|
||||
BEGIN_TEST(write1, "write a tag to the repository which points to an unknown oid and read it again")
|
||||
BEGIN_TEST(write1, "write a tag to the repository which points to an unknown oid should fail")
|
||||
git_repository *repo;
|
||||
git_tag *tag;
|
||||
git_oid target_id, tag_id;
|
||||
@ -135,7 +135,7 @@ BEGIN_TEST(write1, "write a tag to the repository which points to an unknown oid
|
||||
tagger = git_signature_new(TAGGER_NAME, TAGGER_EMAIL, 123456789, 60);
|
||||
must_be_true(tagger != NULL);
|
||||
|
||||
must_pass(git_tag_create(
|
||||
must_fail(git_tag_create(
|
||||
&tag_id, /* out id */
|
||||
repo,
|
||||
"the-zombie-tag",
|
||||
@ -146,17 +146,6 @@ BEGIN_TEST(write1, "write a tag to the repository which points to an unknown oid
|
||||
|
||||
git_signature_free((git_signature *)tagger);
|
||||
|
||||
must_pass(git_tag_lookup(&tag, repo, &tag_id));
|
||||
|
||||
/* The non existent target can not be looked up */
|
||||
must_fail(git_tag_target(&zombie, tag));
|
||||
|
||||
must_pass(git_reference_lookup(&ref_tag, repo, "refs/tags/the-zombie-tag"));
|
||||
|
||||
must_pass(git_reference_delete(ref_tag));
|
||||
must_pass(remove_loose_object(REPOSITORY_FOLDER, (git_object *)tag));
|
||||
|
||||
git_tag_close(tag);
|
||||
git_repository_free(repo);
|
||||
|
||||
END_TEST
|
||||
|
Loading…
Reference in New Issue
Block a user