USB: drivers/usb/misc: Use an IS_ERR test rather than a NULL test
authorJulien Brunel <brunel@diku.dk>
Mon, 1 Sep 2008 08:57:27 +0000 (10:57 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 17 Oct 2008 21:40:53 +0000 (14:40 -0700)
In case of error, the function backlight_device_register returns an
ERR pointer, but never returns a NULL pointer. So a NULL test that may
come after a call to this function should be strengthened by an IS_ERR
test.

The semantic match that finds this problem is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@match_bad_null_test@
expression x, E;
statement S1,S2;
@@
x = backlight_device_register(...)
... when != x = E
* if (x != NULL)
S1 else S2
// </smpl>

Signed-off-by: Julien Brunel <brunel@diku.dk>
Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/misc/appledisplay.c

index a076c24a312a53faa30af12e362128ac70fee2eb..71d672ea12294a20ddea55b65645c1ca5de0ef17 100644 (file)
@@ -314,7 +314,7 @@ error:
                                        pdata->urbdata, pdata->urb->transfer_dma);
                        usb_free_urb(pdata->urb);
                }
-               if (pdata->bd)
+               if (pdata->bd && !IS_ERR(pdata->bd))
                        backlight_device_unregister(pdata->bd);
                kfree(pdata->msgdata);
        }