dou*_*ard 0 kernel system-calls linux-kernel printk
我实施了一个新的系统调用作为介绍练习.它只需要一个缓冲区和printk缓冲区.我后来才知道正确的做法是使用copy_from_user.
这只是一个验证地址的预防措施,还是我的系统调用导致一些我看不到的错误(页面错误?)?
如果只是一种预防措施,它有什么保护作用?
谢谢!
有几个原因.
copy_from_user实际获得正确的内存地址至关重要.copy_from_user如果用户传入内核地址,则不使用可能允许信息泄露.更糟糕的是,如果您在没有写入用户提供的缓冲区copy_to_user,则用户可能会覆盖内核内存.copy_from_user保护来防止错误,例如系统调用处理程序可以返回EFAULT以响应错误的用户指针.| 归档时间: |
|
| 查看次数: |
434 次 |
| 最近记录: |