Skip to contentSkip to conversation

fbdev: ssd1307fb: potential ERR_PTR dereference

PATCH In review Dan Carpenter 3 participants 3 messages May 23, 2015 – May 25, 2015

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 fbdev: ssd1307fb: potential ERR_PTR dereference

The error handling got shifted down a few lines from where it was supposed to be for some reason.

Fixes a14a7ba8cb0f ('fbdev: ssd1307fb: add backlight controls for setting the contrast')
drivers/video/fbdev/ssd1307fb.c +5 -4
index 8fc224c..9c28a77 100644
@@ -655,15 +655,16 @@ static int ssd1307fb_probe(struct i2c_client *client,
 	snprintf(bl_name, sizeof(bl_name), "ssd1307fb%d", info->node);
 	bl = backlight_device_register(bl_name, &client->dev, par,
 				       &ssd1307fb_bl_ops, NULL);
-	bl->props.brightness = par->contrast;
-	bl->props.max_brightness = MAX_CONTRAST;
-	info->bl_dev = bl;
-
 	if (IS_ERR(bl)) {
 		dev_err(&client->dev, "unable to register backlight device: %ld\n",
 			PTR_ERR(bl));
 		goto bl_init_error;
 	}
+
+	bl->props.brightness = par->contrast;
+	bl->props.max_brightness = MAX_CONTRAST;
+	info->bl_dev = bl;
+
 	dev_info(&client->dev, "fb%d: %s framebuffer device registered, using %d bytes of video memory\n", info->node, info->fix.id, vmem_size);
 
 	return 0;
Acked-by on v1 1/1
#1 lore raw
Quoted 5 lines · Dan Carpenter

The error handling got shifted down a few lines from where it was supposed to be for some reason.

Fixes a14a7ba8cb0f ('fbdev: ssd1307fb: add backlight controls for setting the contrast')

Thanks!
Maxime

Signature · 3 lines
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#2 lore raw
In reply to Dan Carpenter
Quoted 22 lines · Dan Carpenter

The error handling got shifted down a few lines from where it was supposed to be for some reason.

Fixes a14a7ba8cb0f ('fbdev: ssd1307fb: add backlight controls for setting the contrast')
drivers/video/fbdev/ssd1307fb.c +0 -4
index 8fc224c..9c28a77 100644
@@ -655,15 +655,16 @@ static int ssd1307fb_probe(struct i2c_client *client,
 	snprintf(bl_name, sizeof(bl_name), "ssd1307fb%d", info->node);
 	bl = backlight_device_register(bl_name, &client->dev, par,
 				       &ssd1307fb_bl_ops, NULL);
-	bl->props.brightness = par->contrast;
-	bl->props.max_brightness = MAX_CONTRAST;
-	info->bl_dev = bl;
-
 	if (IS_ERR(bl)) {
 		dev_err(&client->dev, "unable to register backlight device: %ld\n",
 			PTR_ERR(bl));

drivers/video/fbdev/ssd1307fb.c static int ssd1307fb_probe(struct i2c_client *client, · line 670

Quoted 10 lines
drivers/video/fbdev/ssd1307fb.c +5 -0
 		goto bl_init_error;
 	}
+
+	bl->props.brightness = par->contrast;
+	bl->props.max_brightness = MAX_CONTRAST;
+	info->bl_dev = bl;
+
 	dev_info(&client->dev, "fb%d: %s framebuffer device registered, using %d bytes of video memory\n", info->node, info->fix.id, vmem_size);
 
 	return 0;

Thanks, queued for 4.2.

Tomi