On Mon, 25 Nov 2024 14:47:55 +0800
Wenwu Ma <[email protected]> wrote:
> This patch fixes the variable 'events' may be used uninitialized.
>
> Fixes: 3c89e8c42022 ("eventdev/dma: support adapter service function")
> Cc: [email protected]
>
> Signed-off-by: Wenwu Ma <[email protected]>
> ---
> lib/eventdev/rte_event_dma_adapter.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/lib/eventdev/rte_event_dma_adapter.c
> b/lib/eventdev/rte_event_dma_adapter.c
> index ff2bc408c1..3c05fb615f 100644
> --- a/lib/eventdev/rte_event_dma_adapter.c
> +++ b/lib/eventdev/rte_event_dma_adapter.c
> @@ -655,6 +655,7 @@ edma_ops_enqueue_burst(struct event_dma_adapter *adapter,
> struct rte_event_dma_a
> nb_ev = 0;
> retry = 0;
> nb_enqueued = 0;
> + memset(events, 0, sizeof(events));
> num = RTE_MIN(num, DMA_BATCH_SIZE);
> for (i = 0; i < num; i++) {
> struct rte_event *ev = &events[nb_ev++];
This shows that what every tool you are using to detect these errors is broken.
The loop here is setting the appropriate events.
Each event has two unions 64 bit words. Both of them are being set.
I can't see any unitialized data and neither does standard compiler.