From: Willy Tarreau Date: Fri, 17 Jul 2020 13:04:53 +0000 (+0200) Subject: BUILD: config: fix again bugs gcc warnings on calloc X-Git-Tag: v2.3-dev1~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9b9c174e60ed8f518c13e99257ff2431aef3fa8a;p=thirdparty%2Fhaproxy.git BUILD: config: fix again bugs gcc warnings on calloc Since commit ad37c7ab ("BUILD: config: address build warning on raspbian+rpi4") gcc 7.3.0 complains again on x86_64 (while 8.2.0 does not) : src/cfgparse.c: In function 'check_config_validity': src/cfgparse.c:3593:26: warning: argument 1 range [18446744071562067968, 18446744073709551615] exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] newsrv->idle_conns = calloc(global.nbthread, sizeof(*newsrv->idle_conns)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This thing is completely bogus (actually the RPi one was the most wrong). Let's try to shut them both by using an unsigned short for the cast which is expected to satisfy everyone. It's worth noting that the exact same call a few lines above and below do not trigger this stupid warning. This should be backported to 2.2 since the fix above was put there already. --- diff --git a/src/cfgparse.c b/src/cfgparse.c index 9407d89bf4..be36571cd1 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -3590,7 +3590,7 @@ out_uri_auth_compat: } } - newsrv->idle_conns = calloc(global.nbthread, sizeof(*newsrv->idle_conns)); + newsrv->idle_conns = calloc((unsigned short)global.nbthread, sizeof(*newsrv->idle_conns)); if (!newsrv->idle_conns) { ha_alert("parsing [%s:%d] : failed to allocate idle connections for server '%s'.\n", newsrv->conf.file, newsrv->conf.line, newsrv->id);