Re: executing function in kernel whose name is known

From: Tigran Aivazian (tigran@veritas.com)
Date: Wed Oct 11 2000 - 07:36:11 EST


On Wed, 11 Oct 2000 aprasad@in.ibm.com wrote:

>
>
> >> i know the name of a function which is stored in some string in a kernel
> >> module, is there any way to execute that function.
> >> That function is implemented in a module and has been exported.
> >> thanks,
> >> anil
>
> >you mean execute from userspace? No.
> >You mean execute from kernel space? Yes, but you would need to ensure the
> >module cannot be unloaded (by incrementing its module reference
> >counter) while the function is invoked.
> >Tigran
>
> module having that function won't be unloaded. but my problem is i know
> only name (a string containing name of the function) but not function
> pointer. could you please elaborate on how to do this??
>

if you look at the way get_ksyms_list() (in kernel/module.c) walks the
module_list and prints the hex address and the human readable name of each
exported symbol in a module, you will understand how to map a name to
address.

But I am sure Keith knows of a better way.... looking at his latest kdb
patch.... Indeed, there is a function called get_module_symbol() (in
kernel/module.c) which gets the address of a symbol in the given module.
Actually, this doesn't even require kdb -- it is in the plain vanilla
kernel and is even exported to modules...

Regards,
Tigran

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Oct 15 2000 - 21:00:17 EST