From 8a679de6f1a4bd077f828273f75eea46947b5b73 Mon Sep 17 00:00:00 2001 From: Michael Haggerty Date: Wed, 27 Apr 2016 15:54:45 +0200 Subject: 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 --- refs.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'refs.c') diff --git a/refs.c b/refs.c index 7c4eeb1c99..842c5c7b05 100644 --- a/refs.c +++ b/refs.c @@ -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; -- cgit v1.2.1