diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c index 732e6ed5d7b4..eaaf94e33533 100644 --- a/drivers/usb/gadget/function/f_fs.c +++ b/drivers/usb/gadget/function/f_fs.c @@ -2073,11 +2073,17 @@ static int __ffs_data_do_os_desc(enum ffs_os_desc_type type, if (len < sizeof(*d) || d->bFirstInterfaceNumber >= ffs->interfaces_count || - d->Reserved1) + d->Reserved1 != 1) { + pr_err("%s(): Invalid os_desct_ext_compat\n", + __func__); return -EINVAL; + } for (i = 0; i < ARRAY_SIZE(d->Reserved2); ++i) - if (d->Reserved2[i]) + if (d->Reserved2[i]) { + pr_err("%s(): Invalid Reserved2 of ext_compat\n", + __func__); return -EINVAL; + } length = sizeof(struct usb_ext_compat_desc); }