Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c63fe8f6 authored by Wolfram Sang's avatar Wolfram Sang Committed by Greg Kroah-Hartman
Browse files

usb: core: add sanity checks when using bInterfaceClass with new_id



Check if that field is actually used and if so, bail out if it exeeds a
u8. Make it also future-proof by not requiring "exactly three"
parameters in new_id, but simply "more than two".

Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 3569843a
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -60,7 +60,10 @@ ssize_t usb_store_new_id(struct usb_dynids *dynids,
	dynid->id.idVendor = idVendor;
	dynid->id.idProduct = idProduct;
	dynid->id.match_flags = USB_DEVICE_ID_MATCH_DEVICE;
	if (fields == 3) {
	if (fields > 2 && bInterfaceClass) {
		if (bInterfaceClass > 255)
			return -EINVAL;

		dynid->id.bInterfaceClass = (u8)bInterfaceClass;
		dynid->id.match_flags |= USB_DEVICE_ID_MATCH_INT_CLASS;
	}