--- 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;