usb: config->desc.bLength may not exceed amount of data returned by the device
authorHans de Goede <hdegoede@redhat.com>
Sat, 3 Aug 2013 14:37:48 +0000 (16:37 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 27 Sep 2013 00:15:32 +0000 (17:15 -0700)
commit38a0864499c5a2b092e3ef065d9333acf2600e82
treecc646b11ee68a86585cae1183c3476b58c55c423
parente200d6be9b4d00e89ace0af82787eb9fc70bdaa9
usb: config->desc.bLength may not exceed amount of data returned by the device

commit b4f17a488ae2e09bfcf95c0e0b4219c246f1116a upstream.

While reading the config parsing code I noticed this check is missing, without
this check config->desc.wTotalLength can end up with a value larger then the
dev->rawdescriptors length for the config, and when userspace then tries to
get the rawdescriptors bad things may happen.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/core/config.c