From d0955cad82c92699965f76c95c87150fbed70d3a Mon Sep 17 00:00:00 2001 From: Deepak Nibade Date: Thu, 11 May 2017 14:58:51 +0530 Subject: gpu: nvgpu: fix resource leak in error path In nvgpu_request_firmware(), if fw->data is NULL, we jump to label "err" and leak the storage pointed by linux_fw Fix this by releasing firmware in error path if fw->data is NULL Coverity id : 2513066 Bug 200291879 Change-Id: Ieb5e22137cebb4cd02415b805941969b95a38668 Signed-off-by: Deepak Nibade Reviewed-on: http://git-master/r/1479884 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: svccoveritychecker GVS: Gerrit_Virtual_Submit Reviewed-by: Sachin Nikam --- drivers/gpu/nvgpu/common/linux/firmware.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'drivers/gpu/nvgpu/common/linux/firmware.c') diff --git a/drivers/gpu/nvgpu/common/linux/firmware.c b/drivers/gpu/nvgpu/common/linux/firmware.c index 32b1e61f..43728f05 100644 --- a/drivers/gpu/nvgpu/common/linux/firmware.c +++ b/drivers/gpu/nvgpu/common/linux/firmware.c @@ -93,7 +93,7 @@ struct nvgpu_firmware *nvgpu_request_firmware(struct gk20a *g, fw->data = nvgpu_kmalloc(g, linux_fw->size); if (!fw->data) - goto err; + goto err_release; memcpy(fw->data, linux_fw->data, linux_fw->size); fw->size = linux_fw->size; @@ -102,6 +102,8 @@ struct nvgpu_firmware *nvgpu_request_firmware(struct gk20a *g, return fw; +err_release: + release_firmware(linux_fw); err: nvgpu_kfree(g, fw); return NULL; -- cgit v1.2.2