[PATCH 19.11] efd: fix uninitialized structure
Christian Ehrhardt
christian.ehrhardt at canonical.com
Fri Mar 11 10:10:44 CET 2022
On Thu, Mar 10, 2022 at 5:20 PM Pablo de Lara
<pablo.de.lara.guarch at intel.com> wrote:
>
> [ upstream commit ecda2c40ac549f2ebd1e8be6bf0a96c4aba6bf36 ]
Hi Pablo,
with that patch applied several Distributions start to fail to build
19.11 due to
centos7/8
[ 94s] /home/abuild/rpmbuild/BUILD/dpdk-1646987223.0afaa4b41/lib/librte_efd/rte_efd.c:
In function 'rte_efd_update':
[ 94s] /home/abuild/rpmbuild/BUILD/dpdk-1646987223.0afaa4b41/lib/librte_efd/rte_efd.c:1164:9:
error: missing initializer for field 'lookup_table' of 'struct
efd_online_group_entry' [-Werror=missing-field-initializers]
[ 94s] struct efd_online_group_entry entry = {{0}};
[ 94s] ^
[ 94s] /home/abuild/rpmbuild/BUILD/dpdk-1646987223.0afaa4b41/lib/librte_efd/rte_efd.c:209:18:
note: 'lookup_table' declared here
[ 94s] efd_lookuptbl_t lookup_table[RTE_EFD_VALUE_NUM_BITS];
[ 94s] ^
[ 94s] /home/abuild/rpmbuild/BUILD/dpdk-1646987223.0afaa4b41/lib/librte_efd/rte_efd.c:
At top level:
[ 94s] cc1: error: unrecognized command line option
"-Wno-address-of-packed-member" [-Werror]
sles*
[ 106s] /home/abuild/rpmbuild/BUILD/dpdk-1646987223.0afaa4b41/lib/librte_efd/rte_efd.c:
In function 'rte_efd_update':
[ 107s] /home/abuild/rpmbuild/BUILD/dpdk-1646987223.0afaa4b41/lib/librte_efd/rte_efd.c:1164:9:
error: missing initializer for field 'lookup_table' of 'struct
efd_online_group_entry' [-Werror=missing-field-initializers]
[ 107s] struct efd_online_group_entry entry = {{0}};
[ 107s] ^
[ 107s] /home/abuild/rpmbuild/BUILD/dpdk-1646987223.0afaa4b41/lib/librte_efd/rte_efd.c:209:18:
note: 'lookup_table' declared here
[ 107s] efd_lookuptbl_t lookup_table[RTE_EFD_VALUE_NUM_BITS];
[ 107s] ^
[ 107s] /home/abuild/rpmbuild/BUILD/dpdk-1646987223.0afaa4b41/lib/librte_efd/rte_efd.c:
At top level:
[ 107s] cc1: error: unrecognized command line option
"-Wno-address-of-packed-member" [-Werror]
[ 107s] cc1: all warnings being treated as errors
...
Therefore I unapplied your change after trying it ...
> Coverity flags that both elements of efd_online_group_entry
> are used uninitialized. This is OK because this structure
> is initially used for starting values, so any value is OK.
>
> Coverity ID: 375868
> Fixes: 56b6ef874f80 ("efd: new Elastic Flow Distributor library")
> Cc: stable at dpdk.org
>
> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch at intel.com>
> Acked-by: Yipeng Wang <yipeng1.wang at intel.com>
> ---
> lib/librte_efd/rte_efd.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/librte_efd/rte_efd.c b/lib/librte_efd/rte_efd.c
> index 3fd1f1c97b..4cbe5380d1 100644
> --- a/lib/librte_efd/rte_efd.c
> +++ b/lib/librte_efd/rte_efd.c
> @@ -1161,7 +1161,7 @@ rte_efd_update(struct rte_efd_table * const table, const unsigned int socket_id,
> {
> uint32_t chunk_id = 0, group_id = 0, bin_id = 0;
> uint8_t new_bin_choice = 0;
> - struct efd_online_group_entry entry;
> + struct efd_online_group_entry entry = {{0}};
>
> int status = efd_compute_update(table, socket_id, key, value,
> &chunk_id, &group_id, &bin_id,
> --
> 2.25.1
>
--
Christian Ehrhardt
Staff Engineer, Ubuntu Server
Canonical Ltd
More information about the stable
mailing list