* possible bug (or not clear coding) in uvc_v4l2.c
@ 2012-03-20 16:02 Jozef Vesely
2012-03-21 12:58 ` Laurent Pinchart
0 siblings, 1 reply; 2+ messages in thread
From: Jozef Vesely @ 2012-03-20 16:02 UTC (permalink / raw)
To: linux-kernel; +Cc: laurent.pinchart
Good day,
I am sorry to disturb you, I have been reading through uvc driver source
and this caught my eye:
http://lxr.linux.no/#linux+v3.3/drivers/media/video/uvc/uvc_v4l2.c#L671
678: int pin = 0;
...
689: } else if (pin < selector->bNrInPins) {
...
690: pin = selector->baSourceID[index];
pin is always 0 in the comparison, was this intended?
(wasn't the line 690 supposed to be before the comparison?
or the index to be compared to bNrInPins?)
Please excuse me wasting your tine if it is a total nonsense.
Sincerely
Jozef Vesely
vesely@gjh.sk
PS: I am looking for a reason why MJPEG stopped working
on my cameras (long time ago), any hints?
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: possible bug (or not clear coding) in uvc_v4l2.c
2012-03-20 16:02 possible bug (or not clear coding) in uvc_v4l2.c Jozef Vesely
@ 2012-03-21 12:58 ` Laurent Pinchart
0 siblings, 0 replies; 2+ messages in thread
From: Laurent Pinchart @ 2012-03-21 12:58 UTC (permalink / raw)
To: Jozef Vesely; +Cc: linux-kernel
Hi Jozef,
On Tuesday 20 March 2012 17:02:51 Jozef Vesely wrote:
> Good day,
>
> I am sorry to disturb you, I have been reading through uvc driver source
> and this caught my eye:
> http://lxr.linux.no/#linux+v3.3/drivers/media/video/uvc/uvc_v4l2.c#L671
>
> 678: int pin = 0;
> ...
> 689: } else if (pin < selector->bNrInPins) {
> ...
> 690: pin = selector->baSourceID[index];
>
> pin is always 0 in the comparison, was this intended?
> (wasn't the line 690 supposed to be before the comparison?
> or the index to be compared to bNrInPins?)
>
> Please excuse me wasting your tine if it is a total nonsense.
It's not a waste of time at all. Thank you for the report.
The following patch should fix the problem.
commit 578ac85ae011ed5d1f3aeebcb511509c84792f23
Author: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Date: Wed Mar 21 13:50:36 2012 +0100
uvcvideo: Fix ENUMINPUT handling
Properly validate the user-supplied index against the number of inputs.
The code used the pin local variable instead of the index by mistake.
Reported-by: Jozef Vesely <vesely@gjh.sk>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: stable@vger.kernel.org
diff --git a/drivers/media/video/uvc/uvc_v4l2.c b/drivers/media/video/uvc/uvc_v4l2.c
index 111bfff..a6b9491 100644
--- a/drivers/media/video/uvc/uvc_v4l2.c
+++ b/drivers/media/video/uvc/uvc_v4l2.c
@@ -687,7 +687,7 @@ static long uvc_v4l2_do_ioctl(struct file *file, unsigned int cmd, void *arg)
break;
}
pin = iterm->id;
- } else if (pin < selector->bNrInPins) {
+ } else if (index < selector->bNrInPins) {
pin = selector->baSourceID[index];
list_for_each_entry(iterm, &chain->entities, chain) {
if (!UVC_ENTITY_IS_ITERM(iterm))
I will push it to mainline.
> PS: I am looking for a reason why MJPEG stopped working on my cameras (long
>> time ago), any hints?
Not as such. Could you please provide me with more information ? You can drop
the linux-kernel CC and add linux-uvc-devel@lists.sourceforge.net
(subscriber-only at the moment) or linux-media@vger.kernel.org instead.
--
Regards,
Laurent Pinchart
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2012-03-21 12:57 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-20 16:02 possible bug (or not clear coding) in uvc_v4l2.c Jozef Vesely
2012-03-21 12:58 ` Laurent Pinchart
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).