drivers/video: bad error test before a dereference
The error test that follows the call to backlight_device_register semms not to concern the right variable. A simplified version of the semantic match that finds this problem is as follows: (http://www.emn.fr/x-info/coccinelle/) // <smpl> @def0@ expression x; position p0; @@ x@p0 = backlight_device_register(...) @protected@ expression def0.x,E; position def0.p0; position p; statement S; @@ x@p0 ... when != x = E if (!IS_ERR(x) && ...) {<... x@p ...>} else S @unprotected@ expression def0.x; identifier fld; position def0.p0; position p != protected.p; @@ x@p0 ... when != x = E * x@p->fld // </smpl> Signed-off-by: Julien Brunel <brunel@diku.dk> Signed-off-by: Julia Lawall <julia@diku.dk> Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
9ca791bbd4
Коммит
cf7b9a1e11
|
@ -132,7 +132,7 @@ static void init_backlight(struct atmel_lcdfb_info *sinfo)
|
|||
|
||||
bl = backlight_device_register("backlight", &sinfo->pdev->dev,
|
||||
sinfo, &atmel_lcdc_bl_ops);
|
||||
if (IS_ERR(sinfo->backlight)) {
|
||||
if (IS_ERR(bl)) {
|
||||
dev_err(&sinfo->pdev->dev, "error %ld on backlight register\n",
|
||||
PTR_ERR(bl));
|
||||
return;
|
||||
|
|
Загрузка…
Ссылка в новой задаче