mirror of https://gitee.com/openkylin/linux.git
usb gadget: uvc: uvc_request_data::length field must be signed
The field is used to pass the UVC request data length, but can also be used to signal an error when setting it to a negative value. Switch from unsigned int to __s32. Reported-by: Fernandez Gonzalo <gfernandez@copreci.es> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Cc: stable <stable@vger.kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
66f75a5d02
commit
6f6543f53f
|
@ -28,7 +28,7 @@
|
||||||
|
|
||||||
struct uvc_request_data
|
struct uvc_request_data
|
||||||
{
|
{
|
||||||
unsigned int length;
|
__s32 length;
|
||||||
__u8 data[60];
|
__u8 data[60];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ uvc_send_response(struct uvc_device *uvc, struct uvc_request_data *data)
|
||||||
if (data->length < 0)
|
if (data->length < 0)
|
||||||
return usb_ep_set_halt(cdev->gadget->ep0);
|
return usb_ep_set_halt(cdev->gadget->ep0);
|
||||||
|
|
||||||
req->length = min(uvc->event_length, data->length);
|
req->length = min_t(unsigned int, uvc->event_length, data->length);
|
||||||
req->zero = data->length < uvc->event_length;
|
req->zero = data->length < uvc->event_length;
|
||||||
req->dma = DMA_ADDR_INVALID;
|
req->dma = DMA_ADDR_INVALID;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue