From: Willy Tarreau Date: Wed, 27 Nov 2019 14:41:31 +0000 (+0100) Subject: BUILD/MINOR: trace: fix use of long type in a few printf format strings X-Git-Tag: v2.2-dev1~235 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e18f53e01c927273e65374f43ba3417cea136d01;p=thirdparty%2Fhaproxy.git BUILD/MINOR: trace: fix use of long type in a few printf format strings Building on a 32-bit platform produces these warnings in trace code: src/stream.c: In function 'strm_trace': src/stream.c:226:29: warning: format '%lu' expects argument of type 'long unsigned int', but argument 9 has type 'size_t {aka const unsigned int}' [-Wformat=] chunk_appendf(&trace_buf, " req=(%p .fl=0x%08x .ana=0x%08x .exp(r,w,a)=(%u,%u,%u) .o=%lu .tot=%llu .to_fwd=%u)", ^ src/stream.c:229:29: warning: format '%lu' expects argument of type 'long unsigned int', but argument 9 has type 'size_t {aka const unsigned int}' [-Wformat=] chunk_appendf(&trace_buf, " res=(%p .fl=0x%08x .ana=0x%08x .exp(r,w,a)=(%u,%u,%u) .o=%lu .tot=%llu .to_fwd=%u)", ^ src/mux_fcgi.c: In function 'fcgi_trace': src/mux_fcgi.c:443:29: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'size_t {aka const unsigned int}' [-Wformat=] chunk_appendf(&trace_buf, " - VAL=%lu", *val); ^ src/mux_h1.c: In function 'h1_trace': src/mux_h1.c:290:29: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'size_t {aka const unsigned int}' [-Wformat=] chunk_appendf(&trace_buf, " - VAL=%lu", *val); ^ Let's just cast the type to long. This should be backported to 2.1. --- diff --git a/src/mux_fcgi.c b/src/mux_fcgi.c index d2d2dd4307..c502670df8 100644 --- a/src/mux_fcgi.c +++ b/src/mux_fcgi.c @@ -440,7 +440,7 @@ static void fcgi_trace(enum trace_level level, uint64_t mask, const struct trace /* Display the value to the 4th argument (level > STATE) */ if (src->level > TRACE_LEVEL_STATE && val) - chunk_appendf(&trace_buf, " - VAL=%lu", *val); + chunk_appendf(&trace_buf, " - VAL=%lu", (long)*val); /* Display status-line if possible (verbosity > MINIMAL) */ if (src->verbosity > FCGI_VERB_MINIMAL && htx && htx_nbblks(htx)) { diff --git a/src/mux_h1.c b/src/mux_h1.c index b548849532..d7e35cd42e 100644 --- a/src/mux_h1.c +++ b/src/mux_h1.c @@ -287,7 +287,7 @@ static void h1_trace(enum trace_level level, uint64_t mask, const struct trace_s /* Display the value to the 4th argument (level > STATE) */ if (src->level > TRACE_LEVEL_STATE && val) - chunk_appendf(&trace_buf, " - VAL=%lu", *val); + chunk_appendf(&trace_buf, " - VAL=%lu", (long)*val); /* Display status-line if possible (verbosity > MINIMAL) */ if (src->verbosity > H1_VERB_MINIMAL && htx && htx_nbblks(htx)) { diff --git a/src/stream.c b/src/stream.c index 2c0d2c8950..4efc16bd7b 100644 --- a/src/stream.c +++ b/src/stream.c @@ -225,10 +225,10 @@ static void strm_trace(enum trace_level level, uint64_t mask, const struct trace else { chunk_appendf(&trace_buf, " req=(%p .fl=0x%08x .ana=0x%08x .exp(r,w,a)=(%u,%u,%u) .o=%lu .tot=%llu .to_fwd=%u)", req, req->flags, req->analysers, req->rex, req->wex, req->analyse_exp, - req->output, req->total, req->to_forward); + (long)req->output, req->total, req->to_forward); chunk_appendf(&trace_buf, " res=(%p .fl=0x%08x .ana=0x%08x .exp(r,w,a)=(%u,%u,%u) .o=%lu .tot=%llu .to_fwd=%u)", res, res->flags, res->analysers, res->rex, res->wex, res->analyse_exp, - res->output, res->total, res->to_forward); + (long)res->output, res->total, res->to_forward); } if (src->verbosity == STRM_VERB_SIMPLE ||