Skip to content

Commit d4b20e5

Browse files
Abdun Nihaalgregkh
authored andcommitted
fbdev: ssd1307fb: fix potential page leak in ssd1307fb_probe()
[ Upstream commit 1643126 ] The page allocated for vmem using __get_free_pages() is not freed on the error paths after it. Fix that by adding a corresponding __free_pages() call to the error path. Fixes: facd94b ("fbdev: ssd1307fb: Allocate page aligned video memory.") Signed-off-by: Abdun Nihaal <nihaal@cse.iitm.ac.in> Signed-off-by: Helge Deller <deller@gmx.de> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent 15a6847 commit d4b20e5

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

drivers/video/fbdev/ssd1307fb.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -680,7 +680,7 @@ static int ssd1307fb_probe(struct i2c_client *client)
680680
if (!ssd1307fb_defio) {
681681
dev_err(dev, "Couldn't allocate deferred io.\n");
682682
ret = -ENOMEM;
683-
goto fb_alloc_error;
683+
goto fb_defio_error;
684684
}
685685

686686
ssd1307fb_defio->delay = HZ / refreshrate;
@@ -757,6 +757,8 @@ static int ssd1307fb_probe(struct i2c_client *client)
757757
regulator_disable(par->vbat_reg);
758758
reset_oled_error:
759759
fb_deferred_io_cleanup(info);
760+
fb_defio_error:
761+
__free_pages(vmem, get_order(vmem_size));
760762
fb_alloc_error:
761763
framebuffer_release(info);
762764
return ret;

0 commit comments

Comments
 (0)