Showing error 782

User: Jiri Slaby
Error type: Invalid Pointer Dereference
Error type description: A pointer which is invalid is being dereferenced
File location: drivers/usb/misc/ftdi-elan.c
Line in file: 213
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2011-11-07 22:23:48 UTC


Source:

 183        size_t bulk_in_left;
 184        __u8 bulk_in_endpointAddr;
 185        __u8 bulk_out_endpointAddr;
 186        struct kref kref;
 187        u32 controlreg;
 188        u8 response[4 + 1024];
 189        int expected;
 190        int recieved;
 191        int ed_found;
 192};
 193#define kref_to_usb_ftdi(d) container_of(d, struct usb_ftdi, kref)
 194#define platform_device_to_usb_ftdi(d) container_of(d, struct usb_ftdi, \
 195        platform_dev)
 196static struct usb_driver ftdi_elan_driver;
 197static void ftdi_elan_delete(struct kref *kref)
 198{
 199        struct usb_ftdi *ftdi = kref_to_usb_ftdi(kref);
 200        dev_warn(&ftdi->udev->dev, "FREEING ftdi=%p\n", ftdi);
 201        usb_put_dev(ftdi->udev);
 202        ftdi->disconnected += 1;
 203        mutex_lock(&ftdi_module_lock);
 204        list_del_init(&ftdi->ftdi_list);
 205        ftdi_instances -= 1;
 206        mutex_unlock(&ftdi_module_lock);
 207        kfree(ftdi->bulk_in_buffer);
 208        ftdi->bulk_in_buffer = NULL;
 209}
 210
 211static void ftdi_elan_put_kref(struct usb_ftdi *ftdi)
 212{
 213        kref_put(&ftdi->kref, ftdi_elan_delete);
 214}
 215
 216static void ftdi_elan_get_kref(struct usb_ftdi *ftdi)
 217{
 218        kref_get(&ftdi->kref);
 219}
 220
 221static void ftdi_elan_init_kref(struct usb_ftdi *ftdi)
 222{
 223        kref_init(&ftdi->kref);
Show full sources