This is the mail archive of the
cygwin-apps@cygwin.com
mailing list for the Cygwin project.
Re: rshd uses pipes to communicate with shell
- To: cygapp <cygwin-apps at cygwin dot com>
- Subject: Re: rshd uses pipes to communicate with shell
- From: Corinna Vinschen <cygwin-apps at cygwin dot com>
- Date: Wed, 2 May 2001 18:44:35 +0200
- References: <13043917449.20010428233534@logos-m.ru> <20010429220820.E22095@cygbert.vinschen.de> <310163284.20010430201528@logos-m.ru>
On Mon, Apr 30, 2001 at 08:15:28PM +0400, egor duda wrote:
> Hi!
>
> Monday, 30 April, 2001 Corinna Vinschen cygwin-apps@cygwin.com 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
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Developer mailto:cygwin@cygwin.com
Red Hat, Inc.