Solaris 5.10 Generic_141445-09 i86pc
I am playing around with a kernel module, learning some of the inner workings
of the kernel, and I would like to have a look at a process' environment.
I am confused by the definition in user_t for environment:
uintptr_t u_envp;
.. since I am more used to seeing "char **" in userland.
How can I use this? Is this a pointer into the process's stack which contains
the environment pointer-list?
If I use something like (curthread)->t_procp->p_user.u_envp to locate it,
should I first use copyin() on "u_envp" ?
This simply incur GP panic:
if ( (curthread)->t_procp->p_user.u_envp ) {
char **ep = NULL;
if (!copyin((curthread)->t_procp->p_user.u_envp,
&env, sizeof(env))) {
cmn_err(CE_NOTE, "env is '%s'\n",env[0]);
Thanks.
ps. Is it required to check for NULL on 'curthread', 't_procp', 'p_user'
generally? Should I?
--
This message posted from opensolaris.org
_______________________________________________
opensolaris-code mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code