Commit 129007b4 by nulltoken Committed by Vicent Marti

Fix refs renaming to prevent renaming with an invalid name

parent 65cc1f44
...@@ -1123,11 +1123,16 @@ int git_reference_rename(git_reference *ref, const char *new_name) ...@@ -1123,11 +1123,16 @@ int git_reference_rename(git_reference *ref, const char *new_name)
{ {
int error; int error;
char *old_name; char *old_name;
char old_path[GIT_PATH_MAX], new_path[GIT_PATH_MAX]; char old_path[GIT_PATH_MAX], new_path[GIT_PATH_MAX], normalized_name[MAX_GITDIR_TREE_STRUCTURE_PATH_LENGTH];
git_reference *looked_up_ref; git_reference *looked_up_ref;
assert(ref); assert(ref);
/* Ensure the name is valid */
error = normalize_name(normalized_name, new_name, ref->type & GIT_REF_OID);
if (error < GIT_SUCCESS)
return error;
/* Ensure we're not going to overwrite an existing reference */ /* Ensure we're not going to overwrite an existing reference */
error = git_repository_lookup_ref(&looked_up_ref, ref->owner, new_name); error = git_repository_lookup_ref(&looked_up_ref, ref->owner, new_name);
if (error == GIT_SUCCESS) if (error == GIT_SUCCESS)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment