Patch to pass file descriptors

Corinna Vinschen cygwin-patches@cygwin.com
Wed Jul 3 05:54:00 GMT 2002


On Wed, Jul 03, 2002 at 01:41:15PM +0200, cygpatch wrote:
> On Wed, Jul 03, 2002 at 07:59:59PM +0900, Dmitry Timoshkov wrote:
> > Hello all.
> > 
> > Why not implement passing file descriptors in the following way:
> > 
> > Somewhere in the structure passed to sendmsg send a handle of
> > the calling process created with
> > OpenProcess(PROCESS_DUP_HANDLE, FALSE, GetCurrentProcessId());
> > OpenProcess will always succed, since the caller is current process.
> > 
> > recvmsg implementation will just use that process handle
> > for the DuplicateHandle call.
> 
> recvmsg is in another process.  The open handle is only valid in
> the source process.  It would have to be duplicated for the receiving
> process using DuplicateHandle(src, target) which only works if
> the duplicating process has already PROCESS_DUP_HANDLE access on
> the other process.  Therefore the Cygwin internal descriptor
> passing code only works if one of the processes is a privileged
> process (being member of the admins group is sufficient here).

Btw., descriptor passing works w/o cygserver also if both
processes are running under the same unprivileged account.

Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Developer                                mailto:cygwin@cygwin.com
Red Hat, Inc.



More information about the Cygwin-patches mailing list