[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: netmsg

From: Brent W. Baccala
Subject: Re: netmsg
Date: Tue, 23 Aug 2016 23:45:57 -1000

On Tue, Aug 23, 2016 at 2:12 AM, Richard Braun <rbraun@sceen.net> wrote:

> It's got a lot of problems.  No authentication handoff; everything the
> client requests happens with the permissions of the server.  exec'ing a
> file doesn't work; the last RPC before the hang is memory_object_init.
> emacs doesn't work; the last RPC before the hang is io_reauthenticate.

That's a very interesting problem indeed, not sure how to fix it.

I've looked into it a bit more.

The auth server is going to be more trouble than I anticipated because it depends on using Mach ports for rendezvous.  A send right, after transfer across a TCP/IP connection, will appear to be a completely different port.  I'll think about it more.

The exec problem, on the other hand, is more of a puzzle.  memory_object_init gets sent, but we never see memory_object_ready in reply.  Of course, we're getting memory_object_init from a user process and not the kernel.  So I wrote a little test program to try sending memory_object_init from a user process and, sure enough, no memory_object_ready.

Any ideas why this basic sequence wouldn't work?

   node = file_name_lookup("/lib/ld.so", O_RDONLY, 0)
   io_map(node, &rdobj, &wrobj)
   /* create control and objname with send/receive rights on both */
   memory_object_init(rdobj, control, objname)

...and now I expect to see memory_object_ready on control, but it never happens.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]