On Sat, Aug 16, 2003 at 03:58:34PM +0300, Ognyan Kulev wrote:
> This is exactly what I meant, but I haven't looked deep enough.  This 
> user-supplied task_t is added through proc/mgt.c:add_tasks (called from 
> proc/hash.c:task_find, called from proc/mgt.c:S_proc_child).  But 
> add_tasks retrieves microkernel's task list and searches for this 
> particular task.  So user can't promote his own port as task port to the 
> proc server.  So what I said is plain wrong, and just propaganda ;-)

Ah, good.  I stopped dead at the add_task and didn't bother to look up what
it does ;)
 
> One possible solution is rpctrace not to masquarade system ports, like 
> thread ports, and the patch to be reverted.  For example, on each traced 
> mach_msg, the list of task's threads can be retrieved.  This will allow 
> not masquarading thread ports when they are passed through mach_msg.  It 
> will slow the whole tracing, but at least it will circumvent this 
> particular problem.

This is one option I just sent in a mail to hurd-devel.  The other option
which is slightly cleaner is to provide the task with a wrapped task and
thread port, and in consequence also wrap other thread ports, and have
support in glibc that it uses these ports instead mach_task_self and
mach_thread_self.  Which is also a performance hit, because now RPC trace
gets to see almost all RPCs, including those on local ports.

Thanks,
Marcus

-- 
`Rhubarb is no Egyptian god.' GNU      http://www.gnu.org    [EMAIL PROTECTED]
Marcus Brinkmann              The Hurd http://www.gnu.org/software/hurd/
[EMAIL PROTECTED]
http://www.marcus-brinkmann.de/


_______________________________________________
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd

Reply via email to