mirror of
https://git.proxmox.com/git/libgit2
synced 2025-10-14 15:10:40 +00:00
refs: explicitly catch leading slashes
It's somewhat common to try to write "/refs/tags/something". There is no easy way to catch it during the main body of the function, as there is no way to distinguish whether it's a leading slash or a double slash somewhere in the middle. Catch this at the beginning so we don't trigger the assert in is_all_caps_and_underscore().
This commit is contained in:
parent
9952f24e6c
commit
bb45c57f94
@ -1667,6 +1667,9 @@ int git_reference__normalize_name(
|
|||||||
process_flags = flags;
|
process_flags = flags;
|
||||||
current = (char *)name;
|
current = (char *)name;
|
||||||
|
|
||||||
|
if (*current == '/')
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
if (normalize)
|
if (normalize)
|
||||||
git_buf_clear(buf);
|
git_buf_clear(buf);
|
||||||
|
|
||||||
|
@ -32,6 +32,12 @@ void test_refs_lookup__with_resolve(void)
|
|||||||
git_reference_free(a);
|
git_reference_free(a);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void test_refs_lookup__invalid_name(void)
|
||||||
|
{
|
||||||
|
git_oid oid;
|
||||||
|
cl_git_fail(git_reference_name_to_id(&oid, g_repo, "/refs/tags/point_to_blob"));
|
||||||
|
}
|
||||||
|
|
||||||
void test_refs_lookup__oid(void)
|
void test_refs_lookup__oid(void)
|
||||||
{
|
{
|
||||||
git_oid tag, expected;
|
git_oid tag, expected;
|
||||||
|
Loading…
Reference in New Issue
Block a user