Bug in Cygwin SSHD on windows XP

Corinna Vinschen corinna-cygwin@cygwin.com
Thu Nov 28 03:50:00 GMT 2002


On Thu, Nov 28, 2002 at 11:11:36AM +0100, Frank-Michael Moser wrote:
> >
> > Because vague bug reports are all we have. And no-one can reproduce it
> > either.
> >
> 
> http://sources.redhat.com/ml/cygwin/2002-07/msg01745.html
> 
> When you investigat that thread you do not find only "vague bug 
> reports". I have reported that bug too (so I'm at least No.3 in that 
> game) including a detailed description, the output of cygcheck and sshd 
> debug output and at least 4 subsequent answers to questions and proposes 
> of Corinna and others.
> 
> The problem (which I reported in July) persists. Meanwhile I have 
> completely reinstalled Cygwin, did try nearly any hint related to SSHD 
> posted on the mailing list but no changes exactly as "arBmind" has 
> described.

In your debug output you've send once, $PATH is set to /bin:/bin.
Do you have any explanation how that could happen?  Does that still
happen?  sshd propagates the Windows system environment as is to the
user process.  Well, plus some extras.  However, $PATH is never
reduced to something like "/bin".  Just to prove what I'm saying, the
code in sshd creating the child process environment looks like this:

    #ifdef HAVE_CYGWIN
        /*
         * The Windows environment contains some setting which are
         * important for a running system. They must not be dropped.
         */
        copy_environment(environ, &env, &envsize);
    #endif

        if (!options.use_login) {
            [...]
    # ifndef HAVE_CYGWIN
                /*
                 * There's no standard path on Windows. The path contains
                 * important components pointing to the system directories,
                 * needed for loading shared libraries. So the path better
                 * remains intact here.
                 */
    #  ifdef SUPERUSER_PATH
                child_set_env(&env, &envsize, "PATH",
                    s->pw->pw_uid == 0 ? SUPERUSER_PATH : _PATH_STDPATH);
    #  else
                child_set_env(&env, &envsize, "PATH", _PATH_STDPATH);
    #  endif /* SUPERUSER_PATH */
    # endif /* HAVE_CYGWIN */

So PATH should still contain the usual Windows system paths when calling
the child process.  Which means, there is some point at which PATH is
reworked in a way it shouldn't.  Two wild guesses:

Do you have a user environment file ~/.ssh/environment?

Did you copy your authorized_keys file from a U*X machine and does that
file contain a custom environment setting for your key?

Corinna

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

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list