BUILD: ist: prevent gcc11 maybe-uninitialized warning on istalloc

A new warning is reported by gcc11 when using a pointer to uninitialized
memory block for a function with a const pointer argument. The warning
is triggered for istalloc, used by http_client.c / proxy.c / tcpcheck.c.

This warning is reported because the uninitialized memory block
allocated by malloc should not be passed to a const argument as in ist2.
See https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wmaybe-uninitialized

This should be backported up to 2.2.
This commit is contained in:
Amaury Denoyelle 2021-05-18 11:33:57 +02:00
parent 4837293ca0
commit 7a8aff2688

View File

@ -862,7 +862,15 @@ static inline int istissame(const struct ist ist1, const struct ist ist2)
*/
static inline struct ist istalloc(const size_t size)
{
return ist2(malloc(size), 0);
/* Note: do not use ist2 here, as it triggers a gcc11 warning.
* <unknown> may be used uninitialized [-Werror=maybe-uninitialized]
*
* This warning is reported because the uninitialized memory block
* allocated by malloc should not be passed to a const argument as in
* ist2.
* See https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wmaybe-uninitialized
*/
return (struct ist){ .ptr = malloc(size), .len = 0 };
}
/* This function performs the equivalent of free() on the given <ist>.