diff options
author | Tobias Lorenz <tobias.lorenz@gmx.net> | 2008-01-28 20:43:13 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-02-18 09:15:09 -0500 |
commit | c3f686f152767b84893e474acd1a7758988dc369 (patch) | |
tree | 38422271ed6210b08b95d08457e1c0cf371443ce /drivers/media/radio/radio-si470x.c | |
parent | 532fe65205253aef1ce5c0c76d2d8d303fb3fe71 (diff) |
V4L/DVB (7108): radio-si470x.c: check-after-use
Adrian used the coverity checker against radio-si470x and found this:
> The Coverity checker spotted the following check-after-use in
> drivers/media/radio/radio-si470x.c:
>
> <-- snip -->
> static void si470x_usb_driver_disconnect(struct usb_interface *intf)
> {
> struct si470x_device *radio = usb_get_intfdata(intf);
>
> del_timer_sync(&radio->timer); <------------------
> flush_scheduled_work();
>
> usb_set_intfdata(intf, NULL);
> if (radio) { <------------------
> video_unregister_device(radio->videodev);
> kfree(radio->buffer);
> kfree(radio);
> }
> }
> <-- snip -->
>
> Either "radio" can be NULL and this case has to be properly handled or
> the NULL check is not required.
These two lines should indeed better be inside the if statement.
Signed-off-by: Tobias Lorenz <tobias.lorenz@gmx.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/radio/radio-si470x.c')
-rw-r--r-- | drivers/media/radio/radio-si470x.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/media/radio/radio-si470x.c b/drivers/media/radio/radio-si470x.c index a2975c8b0095..7fdee3cc6e02 100644 --- a/drivers/media/radio/radio-si470x.c +++ b/drivers/media/radio/radio-si470x.c | |||
@@ -1439,11 +1439,10 @@ static void si470x_usb_driver_disconnect(struct usb_interface *intf) | |||
1439 | { | 1439 | { |
1440 | struct si470x_device *radio = usb_get_intfdata(intf); | 1440 | struct si470x_device *radio = usb_get_intfdata(intf); |
1441 | 1441 | ||
1442 | del_timer_sync(&radio->timer); | ||
1443 | flush_scheduled_work(); | ||
1444 | |||
1445 | usb_set_intfdata(intf, NULL); | 1442 | usb_set_intfdata(intf, NULL); |
1446 | if (radio) { | 1443 | if (radio) { |
1444 | del_timer_sync(&radio->timer); | ||
1445 | flush_scheduled_work(); | ||
1447 | video_unregister_device(radio->videodev); | 1446 | video_unregister_device(radio->videodev); |
1448 | kfree(radio->buffer); | 1447 | kfree(radio->buffer); |
1449 | kfree(radio); | 1448 | kfree(radio); |