Commit 8f6073f6 by Jacques Germishuys

Check that the refspec matches before modifying the out buffer

parent 4e53c280
......@@ -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);
}
......
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