From b514863e8544de2f366532695d7bdff66c4bf0f2 Mon Sep 17 00:00:00 2001 From: Shi Jin Date: Wed, 28 Aug 2024 00:15:24 +0000 Subject: [PATCH] prov/efa: Zero the cq entry array in dgram ep progress In efa_dgram_ep_progress_internal, cq_entry was declared without initializing as 0. It casts this array's pointer into smaller structs like `fi_cq_entry` during the cq->read_entry call, which doesn't have the flags member, and then cast it back to fi_cq_tagged_entry which has flags. This finally makes the finally temp_cq_entry struct has a flags from uninitialized values and can cause illegal flags to be used in the cq write. This patch fixes issue by initializing the cq entry array as 0. Signed-off-by: Shi Jin --- prov/efa/src/dgram/efa_dgram_ep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prov/efa/src/dgram/efa_dgram_ep.c b/prov/efa/src/dgram/efa_dgram_ep.c index c02bf3556ae..4f43807035a 100644 --- a/prov/efa/src/dgram/efa_dgram_ep.c +++ b/prov/efa/src/dgram/efa_dgram_ep.c @@ -282,7 +282,7 @@ static struct fi_ops efa_dgram_ep_ops = { static void efa_dgram_ep_progress_internal(struct efa_dgram_ep *ep, struct efa_dgram_cq *efa_dgram_cq) { struct util_cq *cq; - struct fi_cq_tagged_entry cq_entry[efa_dgram_cq_PROGRESS_ENTRIES]; + struct fi_cq_tagged_entry cq_entry[efa_dgram_cq_PROGRESS_ENTRIES] = {0}; struct fi_cq_tagged_entry *temp_cq_entry; struct fi_cq_err_entry cq_err_entry = {0}; fi_addr_t src_addr[efa_dgram_cq_PROGRESS_ENTRIES];