Does this correct a bug in ibmcam.c?
PATCH 1/1 Does this correct a bug in ibmcam.c?
I had problems with copy_from_user.
Please CC me as I am not on this list.
__________________________________
ibmcam.c renamed from ibmcam.c.orig +9 -8
@@ -2527,16 +2527,17 @@ }case VIDIOCSCHAN : { -int v; +int chan; -if (copy_from_user (&v, arg,sizeof (v))) -return -EFAULT ; -if ((v <0 ) || (v >=3 ))/* 3 grades of lighting conditions */ -return -EINVAL ; -if (v != ibmcam->vchan.channel) { - ibmcam->vchan.channel = v; + chan = (int )arg; + +if ((chan <0 ) || (chan >=3 ))/* 3 grades of lighting conditions */ +return -EINVAL ; + +if (chan != ibmcam->vchan.channel) { + ibmcam->vchan.channel = chan;usb_ibmcam_change_lighting_conditions (ibmcam); - } + }return 0 ; }case VIDIOCGPICT :
Signature · 1 line
Lee Brown Jr.
Quoted 10 lines
ibmcam.c renamed from ibmcam.c.orig +3
-6+int chan; -if (copy_from_user (&v, arg,sizeof (v))) -return -EFAULT ; -if ((v <0 ) || (v >=3 ))/* 3 grades of lighting conditions */ -return -EINVAL ; -if (v != ibmcam->vchan.channel) { - ibmcam->vchan.channel = v; + chan = (int )arg; +
ibmcam.c line 2542
Quoted 10 lines
ibmcam.c renamed from ibmcam.c.orig +6
-1+if ((chan <0 ) || (chan >=3 ))/* 3 grades of lighting conditions */ +return -EINVAL ; + +if (chan != ibmcam->vchan.channel) { + ibmcam->vchan.channel = chan;usb_ibmcam_change_lighting_conditions (ibmcam); - } + }return 0 ; }
This change is wrong. I think you are calling the ioctl wrongly