Hollis Blanchard Fix a direct userspace access, found by the Stanford checker. 25-akpm/drivers/media/video/zr36120.c | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-) diff -puN drivers/media/video/zr36120.c~zr36120-userptr drivers/media/video/zr36120.c --- 25/drivers/media/video/zr36120.c~zr36120-userptr Mon Jun 2 13:26:14 2003 +++ 25-akpm/drivers/media/video/zr36120.c Mon Jun 2 13:26:14 2003 @@ -1693,12 +1693,12 @@ long vbi_read(struct video_device* dev, for (x=0; optr+1w; x++) { unsigned char a = iptr[x*2]; - *optr++ = a; - *optr++ = a; + __put_user(a, optr++); + __put_user(a, optr++); } /* and clear the rest of the line */ for (x*=2; optrbpl; x++) - *optr++ = 0; + __put_user(0, optr++); /* next line */ iptr += done->bpl; } @@ -1715,10 +1715,10 @@ long vbi_read(struct video_device* dev, { /* copy to doubled data to userland */ for (x=0; optrw; x++) - *optr++ = iptr[x*2]; + __put_user(iptr[x*2], optr++); /* and clear the rest of the line */ for (;optrbpl; x++) - *optr++ = 0; + __put_user(0, optr++); /* next line */ iptr += done->bpl; } @@ -1727,7 +1727,7 @@ long vbi_read(struct video_device* dev, /* API compliance: * place the framenumber (half fieldnr) in the last long */ - ((ulong*)eptr)[-1] = done->fieldnr/2; + __put_user(done->fieldnr/2, ((ulong*)eptr)[-1]); } /* keep the engine running */ _