看这段代码是不是有问题
发表于 : 2006-08-12 21:56
这是Linux Device Drivers (3rd Edition) 里面 ioctl 函数里面的一段代码:
pdf文档和源代码里面都是这样写的,
考虑到 _IOC_DIR(cmd) 可能等于 _IOC_READ | _IOC_WRITE,应该是if条件里面的_IOC_READ和_IOC_WRITE写反了吧?
代码: 全选
if (_IOC_DIR(cmd) & _IOC_READ)
err = !access_ok(VERIFY_WRITE, (void __user *)arg, _IOC_SIZE(cmd));
else if (_IOC_DIR(cmd) & _IOC_WRITE)
err = !access_ok(VERIFY_READ, (void __user *)arg, _IOC_SIZE(cmd));
if (err) return -EFAULT;
考虑到 _IOC_DIR(cmd) 可能等于 _IOC_READ | _IOC_WRITE,应该是if条件里面的_IOC_READ和_IOC_WRITE写反了吧?