diff options
author | Michael Haggerty <mhagger@alum.mit.edu> | 2016-04-27 15:54:45 +0200 |
---|---|---|
committer | Michael Haggerty <mhagger@alum.mit.edu> | 2016-06-13 11:23:50 +0200 |
commit | 8a679de6f1a4bd077f828273f75eea46947b5b73 (patch) | |
tree | 6118cd062c55624af049c0acef390a6bd62ad16d /refs.c | |
parent | 8415d24746b97a479fe5aec9845bfc150cda2d14 (diff) | |
download | git-8a679de6f1a4bd077f828273f75eea46947b5b73.tar.gz |
ref_transaction_update(): check refname_is_safe() at a minimum
If the user has asked that a new value be set for a reference, we use
check_refname_format() to verify that the reference name satisfies all
of the rules. But in other cases, at least check that refname_is_safe().
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Diffstat (limited to 'refs.c')
-rw-r--r-- | refs.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -805,8 +805,9 @@ int ref_transaction_update(struct ref_transaction *transaction, { assert(err); - if (new_sha1 && !is_null_sha1(new_sha1) && - check_refname_format(refname, REFNAME_ALLOW_ONELEVEL)) { + if ((new_sha1 && !is_null_sha1(new_sha1)) ? + check_refname_format(refname, REFNAME_ALLOW_ONELEVEL) : + !refname_is_safe(refname)) { strbuf_addf(err, "refusing to update ref with bad name '%s'", refname); return -1; |