From: Yunjian Wang <wangyunjian@xxxxxxxxxx> Currently the error return path does not release the "pnvm" when kmemdup fails and also the "pnvm" is not relased in the normal path. These lead to a resource leak. Fix these by releasing "pnvm" before return. Addresses-Coverity: ("Resource leak") Fixes: cdda18fbbefa ("iwlwifi: pnvm: move file loading code to a separate function") Signed-off-by: Yunjian Wang <wangyunjian@xxxxxxxxxx> --- drivers/net/wireless/intel/iwlwifi/fw/pnvm.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/intel/iwlwifi/fw/pnvm.c b/drivers/net/wireless/intel/iwlwifi/fw/pnvm.c index 40f2109a097f..d4ac83848926 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/pnvm.c +++ b/drivers/net/wireless/intel/iwlwifi/fw/pnvm.c @@ -322,10 +322,13 @@ static int iwl_pnvm_get_from_fs(struct iwl_trans *trans, u8 **data, size_t *len) } *data = kmemdup(pnvm->data, pnvm->size, GFP_KERNEL); - if (!*data) + if (!*data) { + release_firmware(pnvm); return -ENOMEM; + } *len = pnvm->size; + release_firmware(pnvm); return 0; } -- 2.19.1