mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-06 23:26:39 +00:00
Check that the refspec matches before modifying the out buffer
This commit is contained in:
parent
4e53c28096
commit
8f6073f63e
@ -226,14 +226,14 @@ int git_refspec_transform(git_buf *out, const git_refspec *spec, const char *nam
|
||||
assert(out && spec && name);
|
||||
git_buf_sanitize(out);
|
||||
|
||||
if (!spec->pattern)
|
||||
return git_buf_puts(out, spec->dst);
|
||||
|
||||
if (!git_refspec_src_matches(spec, name)) {
|
||||
giterr_set(GITERR_INVALID, "ref '%s' doesn't match the source", name);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!spec->pattern)
|
||||
return git_buf_puts(out, spec->dst);
|
||||
|
||||
return refspec_transform(out, spec->src, spec->dst, name);
|
||||
}
|
||||
|
||||
@ -242,14 +242,14 @@ int git_refspec_rtransform(git_buf *out, const git_refspec *spec, const char *na
|
||||
assert(out && spec && name);
|
||||
git_buf_sanitize(out);
|
||||
|
||||
if (!spec->pattern)
|
||||
return git_buf_puts(out, spec->src);
|
||||
|
||||
if (!git_refspec_dst_matches(spec, name)) {
|
||||
giterr_set(GITERR_INVALID, "ref '%s' doesn't match the destination", name);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!spec->pattern)
|
||||
return git_buf_puts(out, spec->src);
|
||||
|
||||
return refspec_transform(out, spec->dst, spec->src, name);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user