On Wed, Feb 28, 2018 at 03:22:30PM -0800, Brandon Williams wrote:

> +static void add_pattern(struct pattern_list *patterns, const char *pattern)
> +{
> +     struct ref_pattern p;
> +     const char *wildcard;
> +
> +     p.pattern = strdup(pattern);

xstrdup?

> +     wildcard = strchr(pattern, '*');
> +     if (wildcard) {
> +             p.wildcard_pos = wildcard - pattern;
> +     } else {
> +             p.wildcard_pos = -1;
> +     }

Hmm, so this would accept stuff like "refs/heads/*/foo" but quietly
ignore the "/foo" part.

It also accepts "refs/h*" to get "refs/heads" and "refs/hello".  I think
it's worth going for the most-restrictive thing to start with, since
that enables a lot more server operations without worrying about
breaking compatibility.

-Peff

Reply via email to