Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

fsi: master-ast-cf: Fix memory leak

In case memory resources for *fw* were allocated, release them
before return.

Addresses-Coverity-ID: 1472044 ("Resource leak")
Fixes: 6a794a27daca ("fsi: master-ast-cf: Add new FSI master using Aspeed ColdFire")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

authored by

Gustavo A. R. Silva and committed by
Benjamin Herrenschmidt
502defbb 375cac70

+4 -2
+4 -2
drivers/fsi/fsi-master-ast-cf.c
··· 861 861 if (sig != wanted_sig) { 862 862 dev_err(master->dev, "Failed to locate image sig %04x in FW blob\n", 863 863 wanted_sig); 864 - return -ENODEV; 864 + rc = -ENODEV; 865 + goto release_fw; 865 866 } 866 867 if (size > master->cf_mem_size) { 867 868 dev_err(master->dev, "FW size (%zd) bigger than memory reserve (%zd)\n", ··· 871 870 } else { 872 871 memcpy_toio(master->cf_mem, data, size); 873 872 } 874 - release_firmware(fw); 875 873 874 + release_fw: 875 + release_firmware(fw); 876 876 return rc; 877 877 } 878 878