Guard a divide in v4l1 compat layer
PATCH 1/1 Guard a divide in v4l1 compat layer
Hi,
I managed to trigger a divide by 0 in the v4l compat code
with the mem2mem test module; I suspect perhaps it shouldn't have been returning a 0 pixel wide picture, but either way it seems right to guard this divide by 0 in the compatibility layer.
Tested on 2.6.36 (ubuntu build, but the code in this is the same as upstream), but ***not tested with a real video device***.
Signed-off-by Dr. David Alan Gilbert <[email protected]>
--
drivers/media/video/v4l1-compat.c +10 -3
@@ -645,9 +645,16 @@ static noinline long v4l1_compat_get_picture( goto done; } - pict->depth = ((fmt->fmt.pix.bytesperline <<3 ) - + (fmt->fmt.pix.width -1 )) - / fmt->fmt.pix.width; +if (fmt->fmt.pix.width) + { + pict->depth = ((fmt->fmt.pix.bytesperline <<3 ) + + (fmt->fmt.pix.width -1 )) + / fmt->fmt.pix.width; + }else { + err = -EINVAL ; + goto done; + } + pict->palette =pixelformat_to_palette ( fmt->fmt.pix.pixelformat); done:
Signature · 4 lines
-----Open up your eyes, open up your mind, open up your code ------- / Dr. David Alan Gilbert | Running GNU/Linux | Happy \ \ gro.gilbert @ treblig.org | | In Hex / \ _________________________|_____ http://www.treblig.org |_______/