diff options
author | Oleksij Rempel <linux@rempel-privat.de> | 2018-11-16 11:10:30 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2018-11-19 09:20:03 +0100 |
commit | 6694f0acabf23355f2d79e5462f89e744ed7a166 (patch) | |
tree | c3276dc731bf8927793fb0689085445133267cd7 /drivers/video/ssd1307fb.c | |
parent | 038b27f1f8deca0cf92d486ff16d189357a6fde5 (diff) | |
download | barebox-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.c | 7 |
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); |