# drivers/usb/media/vicam.c | 13 ++++++++++--- # 1 files changed, 10 insertions(+), 3 deletions(-) diff -urN linux-old/drivers/usb/media/vicam.c linux-wolk-for-2.6drivers/usb/media/vicam.c --- linux-old/drivers/usb/media/vicam.c 2003-11-28 10:26:20.000000000 -0800 +++ linux-wolk-for-2.6drivers/usb/media/vicam.c 2004-01-15 12:10:23.000000000 -0800 @@ -653,12 +653,19 @@ case VIDIOCSWIN: { - struct video_window *vw = (struct video_window *) arg; - DBG("VIDIOCSWIN %d x %d\n", vw->width, vw->height); + struct video_window vw; - if ( vw->width != 320 || vw->height != 240 ) + if (copy_from_user(&vw, arg, sizeof(vw))) + { retval = -EFAULT; + break; + } + + DBG("VIDIOCSWIN %d x %d\n", vw->width, vw->height); + if ( vw.width != 320 || vw.height != 240 ) + retval = -EFAULT; + break; }