从 linux 内核中的 bprm_check_security 获取 argv文档有错吗?

问题描述

根据Linux Kernel's doc

bprm_check_security: 当搜索二进制处理程序将 开始。它允许检查 bprm->cred->security 值 这是在前面的 creds_for_exec 调用中设置的。 argv 列表和 envp 列表在 bprm 中可靠可用。这个钩子可能被称为 在单个 execve 期间多次。 bprm 包含 linux_binprm 结构。

然而,此时argvenvp(例如bprm->mm->arg_start)的值实际上是NULL。这是因为这些值是在 setup_arg_pages 中设置的,钩子之后被调用。此外,current 结构体仍指向旧进程,因此无法用于获取这些数据。

所以我的问题是:文档是否不正确,或者此时是否有其他方法可以可靠地获取参数?


旁注:我知道 this post 已经问了一个非常相似的问题,但我不认为它是重复的,因为这篇文章询问了一种从 bprm_check_security 获取 argv 的方法,而我认为这可能不可能,因此我要求确认问题来自文档。此外,这篇文章没有给出正确答案。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)