linux/drivers/crypto/hisilicon/sec
Yunfeng Ye 24fbf7bad8 crypto: hisilicon - Fix double free in sec_free_hw_sgl()
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: 915e4e8413 ("crypto: hisilicon - SEC security accelerator driver")
Signed-off-by: Yunfeng Ye <yeyunfeng@huawei.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2019-09-20 22:53:09 +10:00
..
Makefile
sec_algs.c crypto: hisilicon - Fix double free in sec_free_hw_sgl() 2019-09-20 22:53:09 +10:00
sec_drv.c cross-tree: phase out dma_zalloc_coherent() 2019-01-08 07:58:37 -05:00
sec_drv.h crypto: hisilicon - Use the correct style for SPDX License Identifier 2019-06-13 14:31:41 +08:00