From: Laurent Pinchart Date: Wed, 25 Nov 2009 15:00:27 +0000 (-0300) Subject: V4L/DVB (13504): uvcvideo: Fix extension units parsing X-Git-Tag: v2.6.33-rc1~338^2~27 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=fd3e921739aff709bbaae6d75d9f64542f47c850;p=karo-tx-linux.git V4L/DVB (13504): uvcvideo: Fix extension units parsing The bNrInPins field is an 8 bit integer, not a 16 bit integer. Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/video/uvc/uvc_driver.c b/drivers/media/video/uvc/uvc_driver.c index db28311d6ec8..8d51a6a130b0 100644 --- a/drivers/media/video/uvc/uvc_driver.c +++ b/drivers/media/video/uvc/uvc_driver.c @@ -844,7 +844,7 @@ static int uvc_parse_vendor_control(struct uvc_device *dev, unit->type = UVC_VC_EXTENSION_UNIT; memcpy(unit->extension.guidExtensionCode, &buffer[4], 16); unit->extension.bNumControls = buffer[20]; - unit->extension.bNrInPins = get_unaligned_le16(&buffer[21]); + unit->extension.bNrInPins = buffer[21]; unit->extension.baSourceID = (__u8 *)unit + sizeof *unit; memcpy(unit->extension.baSourceID, &buffer[22], p); unit->extension.bControlSize = buffer[22+p]; @@ -1108,7 +1108,7 @@ static int uvc_parse_standard_control(struct uvc_device *dev, unit->type = buffer[2]; memcpy(unit->extension.guidExtensionCode, &buffer[4], 16); unit->extension.bNumControls = buffer[20]; - unit->extension.bNrInPins = get_unaligned_le16(&buffer[21]); + unit->extension.bNrInPins = buffer[21]; unit->extension.baSourceID = (__u8 *)unit + sizeof *unit; memcpy(unit->extension.baSourceID, &buffer[22], p); unit->extension.bControlSize = buffer[22+p];