Hi people,
the attached patch fixes a little bug in uvideo(4), where using VIDIOC_ENUM_FMT
with fmtdesc->index strictly larger than the number of available video formats
crashes the kernel (I forgot the exact error message, but a crash is a crash and
the attached patch fixes it).
--
Gregor Best
Index: dev/usb/uvideo.c
===================================================================
RCS file: /cvs/src/sys/dev/usb/uvideo.c,v
retrieving revision 1.166
diff -u -p -r1.166 uvideo.c
--- dev/usb/uvideo.c 28 Oct 2011 12:48:31 -0000 1.166
+++ dev/usb/uvideo.c 16 Jun 2012 19:15:58 -0000
@@ -2775,7 +2775,7 @@ uvideo_enum_fmt(void *v, struct v4l2_fmt
/* type not supported */
return (EINVAL);
- if (fmtdesc->index == sc->sc_fmtgrp_num)
+ if (fmtdesc->index >= sc->sc_fmtgrp_num)
/* no more formats left */
return (EINVAL);
idx = fmtdesc->index;