rshd uses pipes to communicate with shell
Wed May 2 09:44:00 GMT 2001
On Mon, Apr 30, 2001 at 08:15:28PM +0400, egor duda wrote:
> Monday, 30 April, 2001 Corinna Vinschen email@example.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;
> 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
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 mailto:firstname.lastname@example.org
Red Hat, Inc.
More information about the Cygwin-apps