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

fbdev: broadsheetfb: fix memory leak

We have requested the firmware and it was loaded but we missed releasing
it both on success and error.

Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>

authored by

Sudip Mukherjee and committed by
Tomi Valkeinen
4d370b74 4bdb4629

+5 -3
+5 -3
drivers/video/fbdev/broadsheetfb.c
··· 752 752 if ((fw_entry->size < 8*1024) || (fw_entry->size > 64*1024)) { 753 753 dev_err(dev, "Invalid waveform\n"); 754 754 err = -EINVAL; 755 - goto err_failed; 755 + goto err_fw; 756 756 } 757 757 758 758 mutex_lock(&(par->io_lock)); ··· 762 762 mutex_unlock(&(par->io_lock)); 763 763 if (err < 0) { 764 764 dev_err(dev, "Failed to store broadsheet waveform\n"); 765 - goto err_failed; 765 + goto err_fw; 766 766 } 767 767 768 768 dev_info(dev, "Stored broadsheet waveform, size %zd\n", fw_entry->size); 769 769 770 - return len; 770 + err = len; 771 771 772 + err_fw: 773 + release_firmware(fw_entry); 772 774 err_failed: 773 775 return err; 774 776 }