getname是Linux中的未知符号

时间:2016-11-04 00:10:47

标签: c linux system-calls kernel-module

我正在尝试在内核模块中测试getname。我被劫持的系统调用的代码如下:

asmlinkage long (*real_open)(const char __user *, int, int);

struct filename *getname_filename;

asmlinkage long hijacked_open(const char __user *filename, int flags, int mode) {
    getname_filename = getname(filename);
    printk("Opened: %s", getname_filename->name);
    return real_open(filename, flags, mode);
}

代码编译没有任何问题,但是当我使用insmod插入模块时,我得到的错误Unknown symbol in module带有AND而没有printk行。但是在/proc/kallsyms中,我可以找到getname,因此它会被导出。为什么我不能使用它以及如何使用它?

我正在使用Ubuntu 16.04。

0 个答案:

没有答案