这个Pull request通过在初始化时缓存频繁检查的上下文(kernel su, zygote, 和 init)的安全ID(SID)值来优化SELinux域检查。这消除了每次域检查时昂贵的基于字符串的上下文查找,取而代之的是快速的整数比较。

主要变更包括:

  • 引入在post-fs-data初始化期间一次性解析的缓存SID变量
  • 重构域检查函数以使用带有快速路径SID比较的通用is_sid_match()辅助函数
  • 维持向后兼容性,如果缓存失败则回退到字符串比较

已审查的变更:Copilot审查了此次Pull request中3个变更文件中的全部文件,并生成了8条评论。

变更文件详情:

  • kernel/selinux/selinux.h:添加了ZYGOTE_CONTEXT和INIT_CONTEXT宏定义,并声明了新的ksu_selinux_init()函数
  • kernel/selinux/selinux.c:实现了SID缓存机制,包括缓存变量、初始化函数,以及使用is_sid_match()辅助函数重构的比较逻辑
  • kernel/ksud.c:将ksu_selinux_init()调用集成到post-fs-data初始化序列中

💡 添加Copilot自定义指令,以实现更智能、更有指导性的审查。了解更多如何开始的信息。