Messages in this thread | | | Subject | Re: How to temporary change 'current' (task) | From | Peter Zijlstra <> | Date | Fri, 17 Jun 2011 11:29:17 +0200 |
| |
On Fri, 2011-06-17 at 12:36 +0400, Vasiliy Kulikov wrote: > Hi, > > I wonder whether there is a simple way to temporary switch 'current' to > another task and then switch it back with minimum side effects?
No.
> I need > it to call "reversed" ptrace_may_access() with swapped current and > target task. Introducing ptrace_task_may_access_me() would produce too > much noise in LSM (it also needs reversed security_ptrace_access_check()), > which is too loud for my needs. > > Specifically, I need it to filter taskstats and proc connector requests > for a restriction of getting other processes' information: > > http://permalink.gmane.org/gmane.linux.kernel/1155354 > > As the check is handled in the context of the ptrace target process, > ptrace_may_access() doesn't fit my needs.
looking at __ptrace_may_access() it doesn't look too hard to make it take two task arguments and use __task_cred() twice instead of current_cred().
It of course needs extending security_ptrace_access_check() as well, but that comes with the territory.
| |