On Aug 22 20:41, Damien Miller wrote:
> Hi,
> We would like to make one of our periodic releases shortly, so once
> again we are asking for readers of this list (or anyone else) to
> download and test a CVS snapshot of OpenSSH on your favourite
> platforms.
> The OpenBSD version is available in CVS HEAD:
> http://www.openbsd.org/anoncvs.html
> Portable snapshots are available the mirrors listed at
> http://www.openssh.com/portable.html#ftp in the snapshots/
> subdirectory
> Please test! Running the regression tests supplied with Portable does
> not require installation and is a simply:
> $ ./configure && make tests

I've tested the CVS version from yesterday on Cygwin 1.5.18 and 1.5.19
(upcoming version).

`autoreconf', `make', `make install' run fine. Installed version works
as expected.

`make tests' *could* run through with no errors, but there's a bug
in regress/test-exec.sh, which results in the testsuite not running:

# Path to sshd must be absolute for rexec
if [ ! -x /$SSHD ]; then
SSHD=`which sshd`

The above test `-x /$SSHD' fails on Cygwin. The reason is that $SSHD
already contains an absolute path. Therefore the evaluated path which
is tested in the above case starts with two leading slashes, like this:

if [ ! -x //usr/src/openssh/build/sshd ]

The problem here is that paths beginning with two slashes are SMB network
paths on Cygwin/Windows. So in the above case, the statement hangs and
eventually fails, because Cygwin searches for a file src/openssh/build/sshd
on the SMB server named "usr".

Please note that this is NOT a bug in Cygwin. Paths beginning with two
slashes being different from paths beginning with one slash are blessed
by SUSv3, see


Chapter 4.11 "Pathname Resolution", last paragraph:

A pathname consisting of a single slash shall resolve to the root directory
of the process. [...] A pathname that begins with two successive slashes
may be interpreted in an implementation-defined manner, although more than
two leading slashes shall be treated as a single slash.

So the above test should either make sure that the evaluated path
beginns with only one slash, or with more than 2 slashes. The latter
idea looks most easy to implement:

# Path to sshd must be absolute for rexec
if [ ! -x ///$SSHD ]; then
SSHD=`which sshd`


Corinna Vinschen
Cygwin Project Co-Leader
Red Hat, Inc.

openssh-unix-dev mailing list