diff -r d169890332fe -r ad59641a68c8 master/cdev.c --- a/master/cdev.c Mon Jun 09 10:27:56 2008 +0000 +++ b/master/cdev.c Mon Jun 09 10:29:28 2008 +0000 @@ -474,6 +474,8 @@ } case EC_IOCTL_SET_DEBUG: + if (!(filp->f_mode & FMODE_WRITE)) + return -EPERM; if (ec_master_debug_level(master, (unsigned int) arg)) { retval = -EINVAL; } @@ -484,6 +486,9 @@ ec_ioctl_slave_state_t data; ec_slave_t *slave; + if (!(filp->f_mode & FMODE_WRITE)) + return -EPERM; + if (copy_from_user(&data, (void __user *) arg, sizeof(data))) { retval = -EFAULT; break; @@ -680,7 +685,7 @@ } default: - retval = -ENOIOCTLCMD; + retval = -ENOTTY; } return retval;