summaryrefslogtreecommitdiffstats
path: root/drivers/video/ssd1307fb.c
diff options
context:
space:
mode:
authorOleksij Rempel <linux@rempel-privat.de>2018-11-16 11:10:30 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2018-11-19 09:20:03 +0100
commit6694f0acabf23355f2d79e5462f89e744ed7a166 (patch)
treec3276dc731bf8927793fb0689085445133267cd7 /drivers/video/ssd1307fb.c
parent038b27f1f8deca0cf92d486ff16d189357a6fde5 (diff)
downloadbarebox-6694f0acabf23355f2d79e5462f89e744ed7a166.tar.gz
barebox-6694f0acabf23355f2d79e5462f89e744ed7a166.tar.xz
video/ssd1307fb: fix potential memory leak on error
Signed-off-by: Oleksij Rempel <linux@rempel-privat.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/video/ssd1307fb.c')
-rw-r--r--drivers/video/ssd1307fb.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/video/ssd1307fb.c b/drivers/video/ssd1307fb.c
index d68f0c5056..70077e43a8 100644
--- a/drivers/video/ssd1307fb.c
+++ b/drivers/video/ssd1307fb.c
@@ -548,8 +548,10 @@ static int ssd1307fb_probe(struct device_d *dev)
/* clear display */
array = ssd1307fb_alloc_array(par->width * par->height / 8,
SSD1307FB_DATA);
- if (!array)
- return -ENOMEM;
+ if (!array) {
+ ret = -ENOMEM;
+ goto panel_init_error;
+ }
for (i = 0; i < (par->height / 8); i++) {
for (j = 0; j < par->width; j++) {
@@ -569,6 +571,7 @@ static int ssd1307fb_probe(struct device_d *dev)
panel_init_error:
reset_oled_error:
+ free(vmem);
fb_alloc_error:
regulator_disable(par->vbat);
free(info);