diff options
Diffstat (limited to 'drivers/usb/core/message.c')
-rw-r--r-- | drivers/usb/core/message.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c index 82239f27c4cc..e844bb7b5676 100644 --- a/drivers/usb/core/message.c +++ b/drivers/usb/core/message.c | |||
@@ -820,9 +820,11 @@ int usb_string(struct usb_device *dev, int index, char *buf, size_t size) | |||
820 | 820 | ||
821 | if (dev->state == USB_STATE_SUSPENDED) | 821 | if (dev->state == USB_STATE_SUSPENDED) |
822 | return -EHOSTUNREACH; | 822 | return -EHOSTUNREACH; |
823 | if (size <= 0 || !buf || !index) | 823 | if (size <= 0 || !buf) |
824 | return -EINVAL; | 824 | return -EINVAL; |
825 | buf[0] = 0; | 825 | buf[0] = 0; |
826 | if (index <= 0 || index >= 256) | ||
827 | return -EINVAL; | ||
826 | tbuf = kmalloc(256, GFP_NOIO); | 828 | tbuf = kmalloc(256, GFP_NOIO); |
827 | if (!tbuf) | 829 | if (!tbuf) |
828 | return -ENOMEM; | 830 | return -ENOMEM; |