diff options
| author | Jason Gunthorpe <jgg@nvidia.com> | 2026-02-16 11:02:50 -0400 |
|---|---|---|
| committer | Leon Romanovsky <leon@kernel.org> | 2026-02-24 05:03:15 -0500 |
| commit | faa72102b178c7ae6c6afea23879e7c84fc59b4e (patch) | |
| tree | f5f086151ebf4c515b4589f5ea32d88ea2f3d6ab /tools | |
| parent | 74586c6da9ea222a61c98394f2fc0a604748438c (diff) | |
RDMA/ionic: Fix kernel stack leak in ionic_create_cq()
struct ionic_cq_resp resp {
__u32 cqid[2]; // offset 0 - PARTIALLY SET (see below)
__u8 udma_mask; // offset 8 - SET (resp.udma_mask = vcq->udma_mask)
__u8 rsvd[7]; // offset 9 - NEVER SET <- LEAK
};
rsvd[7]: 7 bytes of stack memory leaked unconditionally.
cqid[2]: The loop at line 1256 iterates over udma_idx but skips indices
where !(vcq->udma_mask & BIT(udma_idx)). The array has 2 entries but
udma_count could be 1, meaning cqid[1] might never be written via
ionic_create_cq_common(). If udma_mask only has bit 0 set, cqid[1] (4
bytes) is also leaked. So potentially 11 bytes leaked.
Cc: stable@vger.kernel.org
Fixes: e8521822c733 ("RDMA/ionic: Register device ops for control path")
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://patch.msgid.link/4-v1-83e918d69e73+a9-rdma_udata_rc_jgg@nvidia.com
Acked-by: Abhijit Gangurde <abhijit.gangurde@amd.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Diffstat (limited to 'tools')
0 files changed, 0 insertions, 0 deletions
