mirror of
https://git.proxmox.com/git/libgit2
synced 2025-10-15 18:42:45 +00:00
revparse: don't allow an empty string
Asking the library for "" used to give HEAD, but that's trying to impose a default at the wrong layer. Make it fail.
This commit is contained in:
parent
14e1bc157a
commit
279b45b05b
@ -705,7 +705,7 @@ int git_revparse_single(git_object **out, git_repository *repo, const char *spec
|
|||||||
|
|
||||||
*out = NULL;
|
*out = NULL;
|
||||||
|
|
||||||
do {
|
while (spec[pos]) {
|
||||||
switch (spec[pos]) {
|
switch (spec[pos]) {
|
||||||
case '^':
|
case '^':
|
||||||
if ((error = ensure_base_rev_loaded(&base_rev, &reference, spec, identifier_len, repo, false)) < 0)
|
if ((error = ensure_base_rev_loaded(&base_rev, &reference, spec, identifier_len, repo, false)) < 0)
|
||||||
@ -813,9 +813,9 @@ int git_revparse_single(git_object **out, git_repository *repo, const char *spec
|
|||||||
pos++;
|
pos++;
|
||||||
identifier_len++;
|
identifier_len++;
|
||||||
}
|
}
|
||||||
} while (spec[pos]);
|
}
|
||||||
|
|
||||||
if ((error = ensure_base_rev_loaded(&base_rev, &reference, spec, identifier_len, repo, true)) < 0)
|
if ((error = ensure_base_rev_loaded(&base_rev, &reference, spec, identifier_len, repo, false)) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
*out = base_rev;
|
*out = base_rev;
|
||||||
|
@ -64,6 +64,8 @@ void test_refs_revparse__invalid_reference_name(void)
|
|||||||
cl_git_fail(git_revparse_single(&g_obj, g_repo, "this doesn't make sense"));
|
cl_git_fail(git_revparse_single(&g_obj, g_repo, "this doesn't make sense"));
|
||||||
cl_git_fail(git_revparse_single(&g_obj, g_repo, "this doesn't make sense^1"));
|
cl_git_fail(git_revparse_single(&g_obj, g_repo, "this doesn't make sense^1"));
|
||||||
cl_git_fail(git_revparse_single(&g_obj, g_repo, "this doesn't make sense~2"));
|
cl_git_fail(git_revparse_single(&g_obj, g_repo, "this doesn't make sense~2"));
|
||||||
|
cl_git_fail(git_revparse_single(&g_obj, g_repo, ""));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_refs_revparse__shas(void)
|
void test_refs_revparse__shas(void)
|
||||||
@ -74,7 +76,6 @@ void test_refs_revparse__shas(void)
|
|||||||
|
|
||||||
void test_refs_revparse__head(void)
|
void test_refs_revparse__head(void)
|
||||||
{
|
{
|
||||||
test_object("", "a65fedf39aefe402d3bb6e24df4d4f5fe4547750");
|
|
||||||
test_object("HEAD", "a65fedf39aefe402d3bb6e24df4d4f5fe4547750");
|
test_object("HEAD", "a65fedf39aefe402d3bb6e24df4d4f5fe4547750");
|
||||||
test_object("HEAD^0", "a65fedf39aefe402d3bb6e24df4d4f5fe4547750");
|
test_object("HEAD^0", "a65fedf39aefe402d3bb6e24df4d4f5fe4547750");
|
||||||
test_object("HEAD~0", "a65fedf39aefe402d3bb6e24df4d4f5fe4547750");
|
test_object("HEAD~0", "a65fedf39aefe402d3bb6e24df4d4f5fe4547750");
|
||||||
|
Loading…
Reference in New Issue
Block a user