access_ok | 检查用户空间内存块是否可用

来源:互联网 发布:脸部皮肤粗糙 知乎 编辑:程序博客网 时间:2024/06/10 04:56
access_ok()    
函数是用来代替老版本的 verify_area() 函数的。它的作用也是检查用户空间指针是否可用。


函数原型
access_ok (type, addr, size);

变量说明
type   :   访问类型,其值可为 VERIFY_READ 或者 VERIFY_WRITE 。注意,VERIFY_WRITE 是 VERIFY_READ 的超集 -- 如果可以安全的写内存块,那么自然也总能读到内存块。

addr    用户空间的指针变量,其指向一个要检查的内存块开始处。

size   :   要检查内存块的大小。

返回值

此函数检查用户空间中的内存块是否可用。如果可用,则返回真(非0值),否则返回假 (0) 。


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;
http://blog.sina.com.cn/s/blog_6c46cb8601013z31.html

0 0
原创粉丝点击