summaryrefslogtreecommitdiffstats
path: root/usr
diff options
context:
space:
mode:
authorYunfeng Ye <yeyunfeng@huawei.com>2019-09-15 17:26:56 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-10-07 18:57:16 +0200
commitd983182d40022445076d531f8d69113d6699a88b (patch)
treec5d534456c220f2d4bbcb7467189fb1b0b977123 /usr
parent22c788ba7a52881f2458b5571c2e36fb3a3f74f3 (diff)
downloadlinux-stable-d983182d40022445076d531f8d69113d6699a88b.tar.gz
linux-stable-d983182d40022445076d531f8d69113d6699a88b.tar.bz2
linux-stable-d983182d40022445076d531f8d69113d6699a88b.zip
crypto: hisilicon - Fix double free in sec_free_hw_sgl()
[ Upstream commit 24fbf7bad888767bed952f540ac963bc57e47e15 ] There are two problems in sec_free_hw_sgl(): First, when sgl_current->next is valid, @hw_sgl will be freed in the first loop, but it free again after the loop. Second, sgl_current and sgl_current->next_sgl is not match when dma_pool_free() is invoked, the third parameter should be the dma address of sgl_current, but sgl_current->next_sgl is the dma address of next chain, so use sgl_current->next_sgl is wrong. Fix this by deleting the last dma_pool_free() in sec_free_hw_sgl(), modifying the condition for while loop, and matching the address for dma_pool_free(). Fixes: 915e4e8413da ("crypto: hisilicon - SEC security accelerator driver") Signed-off-by: Yunfeng Ye <yeyunfeng@huawei.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'usr')
0 files changed, 0 insertions, 0 deletions