我们有一个使用filename_lookup调用的内核模块,它不再在RHEL8内核4.18中导出。但是在/proc/kallsym中找到了另一个系统调用,即filename_lookup.part.64
filename_lookup.part.64是什么?我可以使用/proc/kallsyms中导出的地址在代码中调用它吗?
我无法找到任何关于filename_lookup.part.64的文档。
使用这种无文档的API安全吗?
struct filename filename = { .name = name };
struct nameidata nd;
filename_lookup(AT_FDCWD, &filename, LOOKUP_PARENT, &nd);在没有filename_lookup()的情况下,我希望找到可用于替换上述调用的调用
发布于 2021-07-13 07:38:02
关于你的问题
filename_lookup.part.64是什么?我可以使用/proc/kallsyms中导出的地址在代码中调用它吗?
正如在这里中可以看到的那样,编译器优化并内联设置的是没有某些部件的原始filename_lookup函数,因此这是不安全的。
如前所述,@user3248278 3248278将更容易使用包装器,如路径或空的。
发布于 2021-06-20 07:24:40
现在,kern_path(const用各种API包装起来,这些API被导出,例如*int Filename_lookup char *name、无符号int标志、struct )--以获取内核中的inode。您可以轻松地在灵丹妙药中搜索filename_lookup,并且可以找到包装器。
https://stackoverflow.com/questions/58142565
复制相似问题