rshd uses pipes to communicate with shell

Corinna Vinschen
Wed May 2 09:44:00 GMT 2001

On Mon, Apr 30, 2001 at 08:15:28PM +0400, egor duda wrote:
> Hi!
> Monday, 30 April, 2001 Corinna Vinschen wrote:
> CV> On Sat, Apr 28, 2001 at 11:35:34PM +0400, egor duda wrote:
> >> Hi!
> >> 
> >>   is there some special reason for using pipes in rshd? this breaks
> >> programs that rely on getpeername() for additional security check when
> >> they're called from rshd.
> CV> It's the base implementation. I didn't change anything except for
> CV> getting it working. Feel free to change it but be aware of that
> CV> annoying socketpair problem some users have. Just in case...
> oh, i see. i should make myself clearer.  i'm talking about
> #ifdef __CYGWIN__
>         int cv[2];
> #endif
> in rshd.c. base implementation uses pipe to handle stderr, but cygwin
> version seems to handle stdout via pipe too. if some program started
> by rshd then calls getpeername (1, &name, &name_len), it fails with
> ENOTSOCK. i suspect there was some reason for adding 'cv', wasn't
> there?

Sure. I'm actually not quite sure what the exact reason was but
somehow I needed it when I patched it a year ago. AFAIR, I once got
"Descriptor is a file, not a socket" messages and using that additional
pipe solved it.

While we're talking about that... this reminds me evidently of the
USE_PIPES problem in OpenSSH that some people have. I wouldn't be
surprised if the reason is the same...


Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Developer                      
Red Hat, Inc.

More information about the Cygwin-apps mailing list