summaryrefslogtreecommitdiff
path: root/drivers/usb/core/config.c
diff options
context:
space:
mode:
authorAmit Pundir <amit.pundir@linaro.org>2017-11-20 21:48:45 +0530
committerAmit Pundir <amit.pundir@linaro.org>2017-11-20 21:48:45 +0530
commitbaa6b7f93aec81644160ca02a8a6a5ae3be4ce85 (patch)
tree2a6bf027912ae74a354ce3b7d460d04ccfac4e55 /drivers/usb/core/config.c
parent7bc703cde6592016ed3eadd8bd592ee9adbe6647 (diff)
parentf409333f361fed0c71c479b2a0c4e032d496cd94 (diff)
Merge branch 'linux-linaro-lsk-v3.18' into linux-linaro-lsk-v3.18-androidlsk-v3.18-18.03-androidlsk-v3.18-18.02-androidlsk-v3.18-17.11-android
Conflicts: net/packet/af_packet.c Fix conflicts by refactoring changes from LTS commit e4ffdf9ead59 ("packet: hold bind lock when rebinding to fanout hook"), to align with the changes from AOSP commit 6bec212418d2 ("UPSTREAM: packet: fix races in fanout_add()"). Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Diffstat (limited to 'drivers/usb/core/config.c')
-rw-r--r--drivers/usb/core/config.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/usb/core/config.c b/drivers/usb/core/config.c
index 49e66fb1ce87..1c62d31ed896 100644
--- a/drivers/usb/core/config.c
+++ b/drivers/usb/core/config.c
@@ -855,10 +855,12 @@ int usb_get_bos_descriptor(struct usb_device *dev)
for (i = 0; i < num; i++) {
buffer += length;
cap = (struct usb_dev_cap_header *)buffer;
- length = cap->bLength;
- if (total_len < length)
+ if (total_len < sizeof(*cap) || total_len < cap->bLength) {
+ dev->bos->desc->bNumDeviceCaps = i;
break;
+ }
+ length = cap->bLength;
total_len -= length;
if (cap->bDescriptorType != USB_DT_DEVICE_CAPABILITY) {