mirror of https://gitee.com/openkylin/linux.git
usb: gadger: f_fs: Do not copy past descriptor end.
Endpoint descriptors come in 2 sizes, struct usb_endpoint_descriptor being the largest. Use bLength to stop on endpoint descriptor boundary, and not 2 bytes too far. Signed-off-by: Vincent Pelletier <plr.vincent@gmail.com> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
This commit is contained in:
parent
a98feef743
commit
f199a80cfe
|
@ -1230,7 +1230,7 @@ static long ffs_epfile_ioctl(struct file *file, unsigned code,
|
||||||
desc = epfile->ep->descs[desc_idx];
|
desc = epfile->ep->descs[desc_idx];
|
||||||
|
|
||||||
spin_unlock_irq(&epfile->ffs->eps_lock);
|
spin_unlock_irq(&epfile->ffs->eps_lock);
|
||||||
ret = copy_to_user((void *)value, desc, sizeof(*desc));
|
ret = copy_to_user((void *)value, desc, desc->bLength);
|
||||||
if (ret)
|
if (ret)
|
||||||
ret = -EFAULT;
|
ret = -EFAULT;
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Reference in New Issue