Anders Waldenborg <and...@0x63.nu> writes:

> @@ -1352,6 +1353,17 @@ static size_t format_commit_one(struct strbuf *sb, /* 
> in UTF-8 */
>                                               arg++;
>  
>                                       opts.only_trailers = 1;
> +                             } else if (skip_prefix(arg, "separator=", 
> &arg)) {
> +                                     size_t seplen = strcspn(arg, ",)");
> +                                     strbuf_reset(&sepbuf);
> +                                     char *fmt = xstrndup(arg, seplen);
> +                                     strbuf_expand(&sepbuf, fmt, 
> format_fundamental, NULL);

This somehow feels akin to using end-user supplied param to printf(3)
as its format argument e.g.

        int main(int ac, char *av) {
                printf(av[1]);
                return 0;
        }

which is not a good idea.  Is there a mechanism with which we can
ensure that the separator=<what> specification will never come from
potentially malicious sources (e.g. not used to show things on webpage
allowing random folks who access he site to supply custom format)?

Reply via email to