From: Michael Haggerty Date: Mon, 16 Jul 2012 13:24:05 GMT Subject: Re: [PATCH 2/2] symbolic-ref: check format of given refname Message-ID: <500415F5.3060600@alum.mit.edu> In-Reply-To: <1342440781-18816-3-git-send-email-mschub@elegosoft.com> On 07/16/2012 02:13 PM, Michael Schubert wrote: > Currently, it's possible to update HEAD with a nonsense reference since > no strict validation ist performed. Example: > > $ git symbolic-ref HEAD 'refs/heads/master > > > > > > ' > > Fix this by checking the given reference with check_refname_format(). > > Signed-off-by: Michael Schubert > --- > builtin/symbolic-ref.c | 4 +++- > t/t1401-symbolic-ref.sh | 10 ++++++++++ > 2 files changed, 13 insertions(+), 1 deletion(-) > > diff --git a/builtin/symbolic-ref.c b/builtin/symbolic-ref.c > index 801d62e..a529541 100644 > --- a/builtin/symbolic-ref.c > +++ b/builtin/symbolic-ref.c > @@ -44,13 +44,15 @@ int cmd_symbolic_ref(int argc, const char **argv, const char *prefix) > git_config(git_default_config, NULL); > argc = parse_options(argc, argv, prefix, options, > git_symbolic_ref_usage, 0); > - if (msg &&!*msg) > + if (msg && !*msg) > die("Refusing to perform update with empty message"); > switch (argc) { > case 1: > check_symref(argv[0], quiet); > break; > case 2: > + if (check_refname_format(argv[1], 0)) > + die("No valid reference format: '%s'", argv[1]); The error message is awkward. I suggest something like "Reference name has invalid format: '%s'" Michael -- Michael Haggerty mhagger@alum.mit.edu http://softwareswirl.blogspot.com/