On Thu, Apr 07, 2016 at 12:37:53PM -0700, Junio C Hamano wrote:
> -- >8 --
> Subject: setup.c: do not feed NULL to "%.*s" even with the precision 0
>
> A recent update 75faa45a (replace trivial malloc + sprintf / strcpy
> calls with xstrfmt, 2015-09-24) rewrote
>
> prepare an empty buffer
> if (len)
> append the first len bytes of "prefix" to the buffer
> append "path" to the buffer
>
> that computed "path", optionally prefixed by "prefix", into
>
> xstrfmt("%.*s%s", len, prefix, path);
>
> However, passing a NULL pointer to the printf(3) family of functions
> to format it with %s conversion, even with the precision 0, i.e.
>
> xstrfmt("%.*s", 0, NULL)
>
> yields undefined results, at least on some platforms.
>
> Avoid this problem by substituting prefix with "" when len==0, as
> prefix can legally be NULL in that case. This would mimick the
> intent of the original code better.
>
> Reported-by: "Tom G. Christensen" <[email protected]>
> Helped-by: Jeff King <[email protected]>
> Signed-off-by: Junio C Hamano <[email protected]>
> ---
Nicely explained.
Acked-by: Jeff King <[email protected]>
Thanks.
-Peff
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html