Linus亲自修改英特尔的“屎山”代码
使用 __user 指针的符号位而不是屏蔽地址,并根据 TASK_SIZE 范围检查它。 get/put_user () 端做了这部分,但是 'access_ok ()' 做了天真的 “掩码和范围检查”,它不仅生成多余的代码,还意味着 __access_ok 本身的任务做得不好, copy_from_user_nmi () 没有得到正确的检查。
将所有 64 位代码仅移动到 64 位版本的头文件中,这样就不会污染共享的 x86 代码,也不会误导用户 LAM 可以在 32 位环境中工作。
修复地址掩码中的 Bug(这不重要,只是完全删除了错误的代码)。
几个简单的清理,并添加了关于 access_ok () 规则的注释。
相关链接:
https://lore.kernel.org/lkml/[email protected]ail.com/
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d5ed10bb80bb376501cb56015a47457647efaabf
往期推荐
Safari险胜Edge,全球第二
微信扫码关注该文公众号作者
戳这里提交新闻线索和高质量文章给我们。
来源: qq
点击查看作者最近其他文章