diff options
Diffstat (limited to 'drivers/usb/misc/ldusb.c')
-rw-r--r-- | drivers/usb/misc/ldusb.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/usb/misc/ldusb.c b/drivers/usb/misc/ldusb.c index 66ec88354b93..ad17892aac9e 100644 --- a/drivers/usb/misc/ldusb.c +++ b/drivers/usb/misc/ldusb.c | |||
@@ -23,6 +23,7 @@ | |||
23 | * | 23 | * |
24 | * V0.1 (mh) Initial version | 24 | * V0.1 (mh) Initial version |
25 | * V0.11 (mh) Added raw support for HID 1.0 devices (no interrupt out endpoint) | 25 | * V0.11 (mh) Added raw support for HID 1.0 devices (no interrupt out endpoint) |
26 | * V0.12 (mh) Added kmalloc check for string buffer | ||
26 | */ | 27 | */ |
27 | 28 | ||
28 | #include <linux/config.h> | 29 | #include <linux/config.h> |
@@ -84,7 +85,7 @@ static struct usb_device_id ld_usb_table [] = { | |||
84 | { } /* Terminating entry */ | 85 | { } /* Terminating entry */ |
85 | }; | 86 | }; |
86 | MODULE_DEVICE_TABLE(usb, ld_usb_table); | 87 | MODULE_DEVICE_TABLE(usb, ld_usb_table); |
87 | MODULE_VERSION("V0.11"); | 88 | MODULE_VERSION("V0.12"); |
88 | MODULE_AUTHOR("Michael Hund <mhund@ld-didactic.de>"); | 89 | MODULE_AUTHOR("Michael Hund <mhund@ld-didactic.de>"); |
89 | MODULE_DESCRIPTION("LD USB Driver"); | 90 | MODULE_DESCRIPTION("LD USB Driver"); |
90 | MODULE_LICENSE("GPL"); | 91 | MODULE_LICENSE("GPL"); |
@@ -635,6 +636,10 @@ static int ld_usb_probe(struct usb_interface *intf, const struct usb_device_id * | |||
635 | (le16_to_cpu(udev->descriptor.idProduct) == USB_DEVICE_ID_COM3LAB)) && | 636 | (le16_to_cpu(udev->descriptor.idProduct) == USB_DEVICE_ID_COM3LAB)) && |
636 | (le16_to_cpu(udev->descriptor.bcdDevice) <= 0x103)) { | 637 | (le16_to_cpu(udev->descriptor.bcdDevice) <= 0x103)) { |
637 | buffer = kmalloc(256, GFP_KERNEL); | 638 | buffer = kmalloc(256, GFP_KERNEL); |
639 | if (buffer == NULL) { | ||
640 | dev_err(&intf->dev, "Couldn't allocate string buffer\n"); | ||
641 | goto error; | ||
642 | } | ||
638 | /* usb_string makes SETUP+STALL to leave always ControlReadLoop */ | 643 | /* usb_string makes SETUP+STALL to leave always ControlReadLoop */ |
639 | usb_string(udev, 255, buffer, 256); | 644 | usb_string(udev, 255, buffer, 256); |
640 | kfree(buffer); | 645 | kfree(buffer); |