From 268064700bcf42f28aee6b47aeffb19a63c40037 Mon Sep 17 00:00:00 2001 From: Darryl Abbate Date: Wed, 27 Aug 2025 12:59:45 -0700 Subject: [PATCH] [v2.2.x] prov/efa: Initialize pke->addr to `FI_ADDR_NOTAVAIL` This fixes an ostensibly long-standing bug, where pke->addr could be uninitialized (garbage), which naturally causes issues when passed to utility functions like efa_rdm_ep_get_peer(). Signed-off-by: Darryl Abbate --- prov/efa/src/rdm/efa_rdm_pke.c | 1 + prov/efa/test/efa_unit_test_cq.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/prov/efa/src/rdm/efa_rdm_pke.c b/prov/efa/src/rdm/efa_rdm_pke.c index d65cd490299..0fe6788d7d3 100644 --- a/prov/efa/src/rdm/efa_rdm_pke.c +++ b/prov/efa/src/rdm/efa_rdm_pke.c @@ -64,6 +64,7 @@ struct efa_rdm_pke *efa_rdm_pke_alloc(struct efa_rdm_ep *ep, * should be adjusted according to the actual data size. */ pkt_entry->pkt_size = pkt_pool->attr.size - sizeof(struct efa_rdm_pke); + pkt_entry->addr = FI_ADDR_NOTAVAIL; pkt_entry->alloc_type = alloc_type; pkt_entry->flags = EFA_RDM_PKE_IN_USE; pkt_entry->next = NULL; diff --git a/prov/efa/test/efa_unit_test_cq.c b/prov/efa/test/efa_unit_test_cq.c index 0cbc3362e2b..0a204aa5ac9 100644 --- a/prov/efa/test/efa_unit_test_cq.c +++ b/prov/efa/test/efa_unit_test_cq.c @@ -449,6 +449,8 @@ void test_ibv_cq_ex_read_bad_recv_status(struct efa_resource **state) numaddr = fi_av_insert(resource->av, &raw_addr, 1, &peer_addr, 0, NULL); assert_int_equal(numaddr, 1); + pkt_entry->addr = peer_addr; + ibv_cqx->start_poll = &efa_mock_ibv_start_poll_return_mock; ibv_cqx->end_poll = &efa_mock_ibv_end_poll_check_mock; ibv_cqx->read_opcode = &efa_mock_ibv_read_opcode_return_mock;