Smatch reported dereferencing freed memory 'fw' in tps6598x_apply_patch(). Invoking relrease_firmware(fw) just after checking ret. Fixes: 916b8e5fa73d ("usb: typec: tipd: add error log to provide firmware name and size") Signed-off-by: Dipendra Khadka <kdipendra88@xxxxxxxxx> --- v2: - Updated patch subject. - Updated patch description. - Added Fixes tag. v1: drivers/usb/typec/tipd/core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/usb/typec/tipd/core.c b/drivers/usb/typec/tipd/core.c index ea768b19a7f1..70bf8023ea35 100644 --- a/drivers/usb/typec/tipd/core.c +++ b/drivers/usb/typec/tipd/core.c @@ -1191,12 +1191,13 @@ static int tps6598x_apply_patch(struct tps6598x *tps) dev_info(tps->dev, "Firmware update succeeded\n"); release_fw: - release_firmware(fw); if (ret) { dev_err(tps->dev, "Failed to write patch %s of %zu bytes\n", firmware_name, fw->size); } + relrease_firmware(fw); + return ret; }; -- 2.43.0