浏览代码

fpga manager: Fix firmware resource leak on error

If fpga_mgr_buf_load() fails, the firmware resource previously allocated
by request_firmware() is leaked. Fix it by calling release_firmware()
regardless of the return value of fpga_mgr_buf_load().

Found by the Coverity scanner (CID 1339653).

Fixes: 6a8c3be7ec8e ("add FPGA manager core")
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Acked-by: Alan Tull <atull@opensource.altera.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Tobias Klauser 9 年之前
父节点
当前提交
e8c77bda05
共有 1 个文件被更改,包括 1 次插入3 次删除
  1. 1 3
      drivers/fpga/fpga-mgr.c

+ 1 - 3
drivers/fpga/fpga-mgr.c

@@ -122,12 +122,10 @@ int fpga_mgr_firmware_load(struct fpga_manager *mgr, u32 flags,
 	}
 	}
 
 
 	ret = fpga_mgr_buf_load(mgr, flags, fw->data, fw->size);
 	ret = fpga_mgr_buf_load(mgr, flags, fw->data, fw->size);
-	if (ret)
-		return ret;
 
 
 	release_firmware(fw);
 	release_firmware(fw);
 
 
-	return 0;
+	return ret;
 }
 }
 EXPORT_SYMBOL_GPL(fpga_mgr_firmware_load);
 EXPORT_SYMBOL_GPL(fpga_mgr_firmware_load);