diff options
author | Wolfram Sang <wsa@the-dreams.de> | 2014-01-13 11:29:23 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-01-13 15:54:03 -0800 |
commit | 1b9fb31f7db7882d475bdc8b335403e8eaabf1ef (patch) | |
tree | bac2c09511d7807b5df8a7dca8951d04e8445e71 /drivers/usb/core | |
parent | f563926fed982f26b391ca42493f55f2447f1b0a (diff) | |
download | linux-1b9fb31f7db7882d475bdc8b335403e8eaabf1ef.tar.bz2 |
usb: core: check for valid id_table when using the RefId feature
When implementing the RefId feature, it was missed that id_tables can be
NULL under special circumstances. Bail out in that case.
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/core')
-rw-r--r-- | drivers/usb/core/driver.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c index 620a0baf103e..5d01558cef66 100644 --- a/drivers/usb/core/driver.c +++ b/drivers/usb/core/driver.c @@ -73,6 +73,9 @@ ssize_t usb_store_new_id(struct usb_dynids *dynids, if (fields > 4) { const struct usb_device_id *id = id_table; + if (!id) + return -ENODEV; + for (; id->match_flags; id++) if (id->idVendor == refVendor && id->idProduct == refProduct) break; |