[PATCH 1/3] advice: pass varargs to strbuf_vaddf, not strbuf_addf
- From
Jeff King <peff@peff.net>
- Date
- Jul 23, 2012, 18:48 UTC
- Message-ID
- <20120723184857.GA27588@sigill.intra.peff.net>
- In-Reply-To
- <20120723184634.GA31905@sigill.intra.peff.net>
The advise() function takes a variable number of arguments and converts them into a va_list object to pass to strbuf for handling. However, we accidentally called strbuf_addf (that takes a variable number of arguments) instead of strbuf_vaddf (that takes a va_list).
This bug dates back to v1.7.8.1-1-g23cb5bf, but we never noticed because none of the current callers passes a string with a format specifier in it. And the compiler did not notice because the format string is not available at compile time.
Signed-off-by: Jeff King <peff@peff.net> --- advice.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/advice.c b/advice.c index a492eea..edfbd4a 100644 --- a/advice.c +++ b/advice.c @@ -32,7 +32,7 @@ void advise(const char *advice, ...) const char *cp, *np; va_start(params, advice); - strbuf_addf(&buf, advice, params); + strbuf_vaddf(&buf, advice, params); va_end(params); for (cp = buf.buf; *cp; cp = np) {
-- 1.7.10.5.40.g059818d