drivers/video/bf537-lq035.c: Add missing IS_ERR test
authorJulia Lawall <julia@diku.dk>
Mon, 24 Jan 2011 19:55:21 +0000 (19:55 +0000)
committerPaul Mundt <lethal@linux-sh.org>
Tue, 25 Jan 2011 06:09:24 +0000 (15:09 +0900)
commit5dc1365cefb6bd8770d54a2154097445c30fe4bc
tree90fac35b05750df169536d7b466aae0865ca3f59
parente88e43b0c564864c883103483bad6219f77dfb52
drivers/video/bf537-lq035.c: Add missing IS_ERR test

lcd_device_register may return ERR_PTR, so a check is added for this value
before the dereference.  All of the other changes reorganize the error
handling code in this function to avoid duplicating all of it in the added
case.

In the original code, in one case, the global variable fb_buffer was set to
NULL in error code that appears after this variable is initialized.  This
is done now in all error handling code that has this property.

The semantic match that finds this problem is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@r@
identifier f;
@@
f(...) { ... return ERR_PTR(...); }

@@
identifier r.f, fld;
expression x;
statement S1,S2;
@@
 x = f(...)
 ... when != IS_ERR(x)
(
 if (IS_ERR(x) ||...) S1 else S2
|
*x->fld
)
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Acked-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
drivers/video/bf537-lq035.c