aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/qed/iwarp_common.h
diff options
context:
space:
mode:
authorYuval Basson <ybason@marvell.com>2020-03-29 20:32:49 +0300
committerDavid S. Miller <davem@davemloft.net>2020-03-30 11:45:18 -0700
commit8063f761cd7c17fc1d0018728936e0c33a25388a (patch)
tree2c1283ddc185b6114cac3189770fb312b869068e /include/linux/qed/iwarp_common.h
parentr8169: improve handling of TD_MSS_MAX (diff)
downloadlinux-dev-8063f761cd7c17fc1d0018728936e0c33a25388a.tar.xz
linux-dev-8063f761cd7c17fc1d0018728936e0c33a25388a.zip
qed: Fix use after free in qed_chain_free
The qed_chain data structure was modified in commit 1a4a69751f4d ("qed: Chain support for external PBL") to support receiving an external pbl (due to iWARP FW requirements). The pages pointed to by the pbl are allocated in qed_chain_alloc and their virtual address are stored in an virtual addresses array to enable accessing and freeing the data. The physical addresses however weren't stored and were accessed directly from the external-pbl during free. Destroy-qp flow, leads to freeing the external pbl before the chain is freed, when the chain is freed it tries accessing the already freed external pbl, leading to a use-after-free. Therefore we need to store the physical addresses in additional to the virtual addresses in a new data structure. Fixes: 1a4a69751f4d ("qed: Chain support for external PBL") Signed-off-by: Michal Kalderon <mkalderon@marvell.com> Signed-off-by: Yuval Bason <ybason@marvell.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/qed/iwarp_common.h')
0 files changed, 0 insertions, 0 deletions