[PATCH][2/10] verify_area cleanup : drivers part 2
This patch converts the second half of drivers from verify_area to access_ok. Signed-off-by: Jesper Juhl <[EMAIL PROTECTED]> diff -urp linux-2.6.11-orig/drivers/mtd/mtdchar.c linux-2.6.11/drivers/mtd/mtdchar.c --- linux-2.6.11-orig/drivers/mtd/mtdchar.c 2005-03-02 08:38:13.0 +0100 +++ linux-2.6.11/drivers/mtd/mtdchar.c 2005-03-03 22:51:20.0 +0100 @@ -285,12 +285,12 @@ static int mtd_ioctl(struct inode *inode size = (cmd & IOCSIZE_MASK) >> IOCSIZE_SHIFT; if (cmd & IOC_IN) { - ret = verify_area(VERIFY_READ, argp, size); - if (ret) return ret; + if (!access_ok(VERIFY_READ, argp, size)) + return -EFAULT; } if (cmd & IOC_OUT) { - ret = verify_area(VERIFY_WRITE, argp, size); - if (ret) return ret; + if (!access_ok(VERIFY_WRITE, argp, size)) + return -EFAULT; } switch (cmd) { @@ -389,7 +389,8 @@ static int mtd_ioctl(struct inode *inode if (!mtd->write_oob) ret = -EOPNOTSUPP; else - ret = verify_area(VERIFY_READ, buf.ptr, buf.length); + ret = access_ok(VERIFY_READ, buf.ptr, + buf.length) ? 0 : EFAULT; if (ret) return ret; @@ -428,7 +429,8 @@ static int mtd_ioctl(struct inode *inode if (!mtd->read_oob) ret = -EOPNOTSUPP; else - ret = verify_area(VERIFY_WRITE, buf.ptr, buf.length); + ret = access_ok(VERIFY_WRITE, buf.ptr, + buf.length) ? 0 : -EFAULT; if (ret) return ret; diff -urp linux-2.6.11-orig/drivers/net/wireless/orinoco.c linux-2.6.11/drivers/net/wireless/orinoco.c --- linux-2.6.11-orig/drivers/net/wireless/orinoco.c2005-03-02 08:38:33.0 +0100 +++ linux-2.6.11/drivers/net/wireless/orinoco.c 2005-03-03 22:51:20.0 +0100 @@ -2553,9 +2553,8 @@ static int orinoco_ioctl_getiwrange(stru TRACE_ENTER(dev->name); - err = verify_area(VERIFY_WRITE, rrq->pointer, sizeof(range)); - if (err) - return err; + if (!access_ok(VERIFY_WRITE, rrq->pointer, sizeof(range))) + return -EFAULT; rrq->length = sizeof(range); diff -urp linux-2.6.11-orig/drivers/pcmcia/ds.c linux-2.6.11/drivers/pcmcia/ds.c --- linux-2.6.11-orig/drivers/pcmcia/ds.c 2005-03-02 08:38:17.0 +0100 +++ linux-2.6.11/drivers/pcmcia/ds.c2005-03-03 22:51:28.0 +0100 @@ -1099,17 +1099,15 @@ static int ds_ioctl(struct inode * inode return -EPERM; if (cmd & IOC_IN) { - err = verify_area(VERIFY_READ, uarg, size); - if (err) { - ds_dbg(3, "ds_ioctl(): verify_read = %d\n", err); - return err; + if (!access_ok(VERIFY_READ, uarg, size)) { + ds_dbg(3, "ds_ioctl(): verify_read = %d\n", -EFAULT); + return -EFAULT; } } if (cmd & IOC_OUT) { - err = verify_area(VERIFY_WRITE, uarg, size); - if (err) { - ds_dbg(3, "ds_ioctl(): verify_write = %d\n", err); - return err; + if (!access_ok(VERIFY_WRITE, uarg, size)) { + ds_dbg(3, "ds_ioctl(): verify_write = %d\n", -EFAULT); + return -EFAULT; } } buf = kmalloc(sizeof(ds_ioctl_arg_t), GFP_KERNEL); diff -urp linux-2.6.11-orig/drivers/s390/net/ctctty.c linux-2.6.11/drivers/s390/net/ctctty.c --- linux-2.6.11-orig/drivers/s390/net/ctctty.c 2005-03-02 08:38:10.0 +0100 +++ linux-2.6.11/drivers/s390/net/ctctty.c 2005-03-03 22:51:22.0 +0100 @@ -778,11 +778,10 @@ ctc_tty_ioctl(struct tty_struct *tty, st printk(KERN_DEBUG "%s%d ioctl TIOCSERGETLSR\n", CTC_TTY_NAME, info->line); #endif - error = verify_area(VERIFY_WRITE, (void __user *) arg, sizeof(uint)); - if (error) - return error; - else + if (access_ok(VERIFY_WRITE, (void __user *) arg, sizeof(uint))) return ctc_tty_get_lsr_info(info, (uint __user *) arg); + else + return -EFAULT; default: #ifdef CTC_DEBUG_MODEM_IOCTL printk(KERN_DEBUG "UNKNOWN ioctl 0x%08x on %s%d\n", cmd, diff -urp linux-2.6.11-orig/drivers/sbus/char/aurora.c linux-2.6.11/drivers/sbus/char/aurora.c --- linux-2.6.11-orig/drivers/sbus/char/aurora.c2005-03-02 08:37:49.0 +0100 +++ linux-2.6.11/drivers/sbus/char/aurora.c 2005-03-03 22:51:22.0 +0100 @@ -1887,14 +1887,12 @@ extern int aurora_get_serial_info(struct {
[PATCH][2/10] verify_area cleanup : drivers part 2
This patch converts the second half of drivers from verify_area to access_ok. Signed-off-by: Jesper Juhl [EMAIL PROTECTED] diff -urp linux-2.6.11-orig/drivers/mtd/mtdchar.c linux-2.6.11/drivers/mtd/mtdchar.c --- linux-2.6.11-orig/drivers/mtd/mtdchar.c 2005-03-02 08:38:13.0 +0100 +++ linux-2.6.11/drivers/mtd/mtdchar.c 2005-03-03 22:51:20.0 +0100 @@ -285,12 +285,12 @@ static int mtd_ioctl(struct inode *inode size = (cmd IOCSIZE_MASK) IOCSIZE_SHIFT; if (cmd IOC_IN) { - ret = verify_area(VERIFY_READ, argp, size); - if (ret) return ret; + if (!access_ok(VERIFY_READ, argp, size)) + return -EFAULT; } if (cmd IOC_OUT) { - ret = verify_area(VERIFY_WRITE, argp, size); - if (ret) return ret; + if (!access_ok(VERIFY_WRITE, argp, size)) + return -EFAULT; } switch (cmd) { @@ -389,7 +389,8 @@ static int mtd_ioctl(struct inode *inode if (!mtd-write_oob) ret = -EOPNOTSUPP; else - ret = verify_area(VERIFY_READ, buf.ptr, buf.length); + ret = access_ok(VERIFY_READ, buf.ptr, + buf.length) ? 0 : EFAULT; if (ret) return ret; @@ -428,7 +429,8 @@ static int mtd_ioctl(struct inode *inode if (!mtd-read_oob) ret = -EOPNOTSUPP; else - ret = verify_area(VERIFY_WRITE, buf.ptr, buf.length); + ret = access_ok(VERIFY_WRITE, buf.ptr, + buf.length) ? 0 : -EFAULT; if (ret) return ret; diff -urp linux-2.6.11-orig/drivers/net/wireless/orinoco.c linux-2.6.11/drivers/net/wireless/orinoco.c --- linux-2.6.11-orig/drivers/net/wireless/orinoco.c2005-03-02 08:38:33.0 +0100 +++ linux-2.6.11/drivers/net/wireless/orinoco.c 2005-03-03 22:51:20.0 +0100 @@ -2553,9 +2553,8 @@ static int orinoco_ioctl_getiwrange(stru TRACE_ENTER(dev-name); - err = verify_area(VERIFY_WRITE, rrq-pointer, sizeof(range)); - if (err) - return err; + if (!access_ok(VERIFY_WRITE, rrq-pointer, sizeof(range))) + return -EFAULT; rrq-length = sizeof(range); diff -urp linux-2.6.11-orig/drivers/pcmcia/ds.c linux-2.6.11/drivers/pcmcia/ds.c --- linux-2.6.11-orig/drivers/pcmcia/ds.c 2005-03-02 08:38:17.0 +0100 +++ linux-2.6.11/drivers/pcmcia/ds.c2005-03-03 22:51:28.0 +0100 @@ -1099,17 +1099,15 @@ static int ds_ioctl(struct inode * inode return -EPERM; if (cmd IOC_IN) { - err = verify_area(VERIFY_READ, uarg, size); - if (err) { - ds_dbg(3, ds_ioctl(): verify_read = %d\n, err); - return err; + if (!access_ok(VERIFY_READ, uarg, size)) { + ds_dbg(3, ds_ioctl(): verify_read = %d\n, -EFAULT); + return -EFAULT; } } if (cmd IOC_OUT) { - err = verify_area(VERIFY_WRITE, uarg, size); - if (err) { - ds_dbg(3, ds_ioctl(): verify_write = %d\n, err); - return err; + if (!access_ok(VERIFY_WRITE, uarg, size)) { + ds_dbg(3, ds_ioctl(): verify_write = %d\n, -EFAULT); + return -EFAULT; } } buf = kmalloc(sizeof(ds_ioctl_arg_t), GFP_KERNEL); diff -urp linux-2.6.11-orig/drivers/s390/net/ctctty.c linux-2.6.11/drivers/s390/net/ctctty.c --- linux-2.6.11-orig/drivers/s390/net/ctctty.c 2005-03-02 08:38:10.0 +0100 +++ linux-2.6.11/drivers/s390/net/ctctty.c 2005-03-03 22:51:22.0 +0100 @@ -778,11 +778,10 @@ ctc_tty_ioctl(struct tty_struct *tty, st printk(KERN_DEBUG %s%d ioctl TIOCSERGETLSR\n, CTC_TTY_NAME, info-line); #endif - error = verify_area(VERIFY_WRITE, (void __user *) arg, sizeof(uint)); - if (error) - return error; - else + if (access_ok(VERIFY_WRITE, (void __user *) arg, sizeof(uint))) return ctc_tty_get_lsr_info(info, (uint __user *) arg); + else + return -EFAULT; default: #ifdef CTC_DEBUG_MODEM_IOCTL printk(KERN_DEBUG UNKNOWN ioctl 0x%08x on %s%d\n, cmd, diff -urp linux-2.6.11-orig/drivers/sbus/char/aurora.c linux-2.6.11/drivers/sbus/char/aurora.c --- linux-2.6.11-orig/drivers/sbus/char/aurora.c2005-03-02 08:37:49.0 +0100 +++ linux-2.6.11/drivers/sbus/char/aurora.c 2005-03-03 22:51:22.0 +0100 @@ -1887,14 +1887,12 @@ extern int aurora_get_serial_info(struct { struct serial_struct tmp;