aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2013-11-12 18:09:00 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2013-11-12 22:09:15 -0500
commite19493c1f29a3ac48db8797a79532b62a03442b8 (patch)
tree4d323aa9c38d34911484864a9cc11be18f340580
parent2a0c316bf3ccd910dc58ec62465ff620c664b5e4 (diff)
drivers/video/backlight/lm3630a_bl.c: potential NULL deref in probe()
We dereference "pdata" later in the function so we can't leave it as NULL. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Acked-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--drivers/video/backlight/lm3630a_bl.c25
1 files changed, 12 insertions, 13 deletions
diff --git a/drivers/video/backlight/lm3630a_bl.c b/drivers/video/backlight/lm3630a_bl.c
index 200dca04383f..d719a89a4381 100644
--- a/drivers/video/backlight/lm3630a_bl.c
+++ b/drivers/video/backlight/lm3630a_bl.c
@@ -389,22 +389,21 @@ static int lm3630a_probe(struct i2c_client *client,
389 389
390 i2c_set_clientdata(client, pchip); 390 i2c_set_clientdata(client, pchip);
391 if (pdata == NULL) { 391 if (pdata == NULL) {
392 pchip->pdata = devm_kzalloc(pchip->dev, 392 pdata = devm_kzalloc(pchip->dev,
393 sizeof(struct 393 sizeof(struct lm3630a_platform_data),
394 lm3630a_platform_data), 394 GFP_KERNEL);
395 GFP_KERNEL); 395 if (pdata == NULL)
396 if (pchip->pdata == NULL)
397 return -ENOMEM; 396 return -ENOMEM;
398 /* default values */ 397 /* default values */
399 pchip->pdata->leda_ctrl = LM3630A_LEDA_ENABLE; 398 pdata->leda_ctrl = LM3630A_LEDA_ENABLE;
400 pchip->pdata->ledb_ctrl = LM3630A_LEDB_ENABLE; 399 pdata->ledb_ctrl = LM3630A_LEDB_ENABLE;
401 pchip->pdata->leda_max_brt = LM3630A_MAX_BRIGHTNESS; 400 pdata->leda_max_brt = LM3630A_MAX_BRIGHTNESS;
402 pchip->pdata->ledb_max_brt = LM3630A_MAX_BRIGHTNESS; 401 pdata->ledb_max_brt = LM3630A_MAX_BRIGHTNESS;
403 pchip->pdata->leda_init_brt = LM3630A_MAX_BRIGHTNESS; 402 pdata->leda_init_brt = LM3630A_MAX_BRIGHTNESS;
404 pchip->pdata->ledb_init_brt = LM3630A_MAX_BRIGHTNESS; 403 pdata->ledb_init_brt = LM3630A_MAX_BRIGHTNESS;
405 } else {
406 pchip->pdata = pdata;
407 } 404 }
405 pchip->pdata = pdata;
406
408 /* chip initialize */ 407 /* chip initialize */
409 rval = lm3630a_chip_init(pchip); 408 rval = lm3630a_chip_init(pchip);
410 if (rval < 0) { 409 if (rval < 0) {