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

fbdev/broadsheetfb: fix memory leak

static code analysis from cppcheck reports:

[drivers/video/fbdev/broadsheetfb.c:673]:
(error) Memory leak: sector_buffer

sector_buffer is not being kfree'd on each call to
broadsheet_spiflash_rewrite_sector(), so free it.

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>

authored by

Colin Ian King and committed by
Tomi Valkeinen
ef6899cd d9e02019

+5 -3
+5 -3
drivers/video/fbdev/broadsheetfb.c
··· 636 636 err = broadsheet_spiflash_read_range(par, start_sector_addr, 637 637 data_start_addr, sector_buffer); 638 638 if (err) 639 - return err; 639 + goto out; 640 640 } 641 641 642 642 /* now we copy our data into the right place in the sector buffer */ ··· 657 657 err = broadsheet_spiflash_read_range(par, tail_start_addr, 658 658 tail_len, sector_buffer + tail_start_addr); 659 659 if (err) 660 - return err; 660 + goto out; 661 661 } 662 662 663 663 /* if we got here we have the full sector that we want to rewrite. */ ··· 665 665 /* first erase the sector */ 666 666 err = broadsheet_spiflash_erase_sector(par, start_sector_addr); 667 667 if (err) 668 - return err; 668 + goto out; 669 669 670 670 /* now write it */ 671 671 err = broadsheet_spiflash_write_sector(par, start_sector_addr, 672 672 sector_buffer, sector_size); 673 + out: 674 + kfree(sector_buffer); 673 675 return err; 674 676 } 675 677