Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c3f686f152767b84893e474acd1a7758988dc369
Commit:     c3f686f152767b84893e474acd1a7758988dc369
Parent:     532fe65205253aef1ce5c0c76d2d8d303fb3fe71
Author:     Tobias Lorenz <[EMAIL PROTECTED]>
AuthorDate: Mon Jan 28 22:43:13 2008 -0300
Committer:  Mauro Carvalho Chehab <[EMAIL PROTECTED]>
CommitDate: Mon Feb 18 11:15:09 2008 -0300

    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 <[EMAIL PROTECTED]>
    Signed-off-by: Mauro Carvalho Chehab <[EMAIL PROTECTED]>
---
 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 a2975c8..7fdee3c 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)
 {
        struct si470x_device *radio = usb_get_intfdata(intf);
 
-       del_timer_sync(&radio->timer);
-       flush_scheduled_work();
-
        usb_set_intfdata(intf, NULL);
        if (radio) {
+              del_timer_sync(&radio->timer);
+              flush_scheduled_work();
                video_unregister_device(radio->videodev);
                kfree(radio->buffer);
                kfree(radio);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to