Commit 30afec67 authored by Antonino Daplas's avatar Antonino Daplas Committed by Linus Torvalds

[PATCH] kyrofb: copy_*_user return value checks added to kyro fb

Here's a patch that makes sure the return value of copy_from/to_user gets
checked and handled in drivers/video/kyro/fbdev.c It also updates a comment at
the top of the file that lists the files name and location.
Signed-off-by: default avatarJesper Juhl <juhl-lkml@dif.dk>
Signed-off-by: default avatarAntonino Daplas <adaplas@pol.net>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 58f533f9
/* /*
* linux/drivers/video/kyro/kyrofb.c * linux/drivers/video/kyro/fbdev.c
* *
* Copyright (C) 2002 STMicroelectronics * Copyright (C) 2002 STMicroelectronics
* Copyright (C) 2003, 2004 Paul Mundt * Copyright (C) 2003, 2004 Paul Mundt
...@@ -594,7 +594,8 @@ static int kyrofb_ioctl(struct inode *inode, struct file *file, ...@@ -594,7 +594,8 @@ static int kyrofb_ioctl(struct inode *inode, struct file *file,
switch (cmd) { switch (cmd) {
case KYRO_IOCTL_OVERLAY_CREATE: case KYRO_IOCTL_OVERLAY_CREATE:
copy_from_user(&ol_create, argp, sizeof(overlay_create)); if (copy_from_user(&ol_create, argp, sizeof(overlay_create)))
return -EFAULT;
if (kyro_dev_overlay_create(ol_create.ulWidth, if (kyro_dev_overlay_create(ol_create.ulWidth,
ol_create.ulHeight, 0) < 0) { ol_create.ulHeight, 0) < 0) {
...@@ -604,8 +605,9 @@ static int kyrofb_ioctl(struct inode *inode, struct file *file, ...@@ -604,8 +605,9 @@ static int kyrofb_ioctl(struct inode *inode, struct file *file,
} }
break; break;
case KYRO_IOCTL_OVERLAY_VIEWPORT_SET: case KYRO_IOCTL_OVERLAY_VIEWPORT_SET:
copy_from_user(&ol_viewport_set, argp, if (copy_from_user(&ol_viewport_set, argp,
sizeof(overlay_viewport_set)); sizeof(overlay_viewport_set)))
return -EFAULT;
if (kyro_dev_overlay_viewport_set(ol_viewport_set.xOrgin, if (kyro_dev_overlay_viewport_set(ol_viewport_set.xOrgin,
ol_viewport_set.yOrgin, ol_viewport_set.yOrgin,
...@@ -625,13 +627,16 @@ static int kyrofb_ioctl(struct inode *inode, struct file *file, ...@@ -625,13 +627,16 @@ static int kyrofb_ioctl(struct inode *inode, struct file *file,
} }
break; break;
case KYRO_IOCTL_UVSTRIDE: case KYRO_IOCTL_UVSTRIDE:
copy_to_user(argp, &deviceInfo.ulOverlayUVStride, sizeof(unsigned long)); if (copy_to_user(argp, &deviceInfo.ulOverlayUVStride, sizeof(unsigned long)))
return -EFAULT;
break; break;
case KYRO_IOCTL_STRIDE: case KYRO_IOCTL_STRIDE:
copy_to_user(argp, &deviceInfo.ulOverlayStride, sizeof(unsigned long)); if (copy_to_user(argp, &deviceInfo.ulOverlayStride, sizeof(unsigned long)))
return -EFAULT;
break; break;
case KYRO_IOCTL_OVERLAY_OFFSET: case KYRO_IOCTL_OVERLAY_OFFSET:
copy_to_user(argp, &deviceInfo.ulOverlayOffset, sizeof(unsigned long)); if (copy_to_user(argp, &deviceInfo.ulOverlayOffset, sizeof(unsigned long)))
return -EFAULT;
break; break;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment