OpenSSH 5.1: call for testing

Corinna Vinschen vinschen at redhat.com
Wed Jul 16 23:32:16 EST 2008


Ping?

On Jul 14 23:20, Corinna Vinschen wrote:
> On Jul 14 14:10, Corinna Vinschen wrote:
> > On Jul 14 21:38, Damien Miller wrote:
> > > > Below you'll find a patch which fixes that problem in fake-rfc2553.c.
> > > > Tested on Cygwin 1.5.25.
> > > 
> > > Applied - thanks.
> 
> Below is another patch which simplifies the test for POSIX file security
> in Cygwin.  The functionality implemented in check_ntsec() is already
> present in the Cygwin DLL for about seven years and accessible through
> pathconf(3).  In fact, in Cygwin 1.7, this will be the *only* valid
> interface to check for POSIX file security, since the global
> "CYGWIN=ntsec" environment option will be dropped in favor of a
> per-mount option.
> 
> Another question is this:  The has_capability function requests Cygwin
> version information to figure out if specific features are available.
> The newest of the requested capabilities exists since Cygwin 1.5.0,
> which has been release in 2003, five years ago.  Older versions of
> Cygwin are long out of support.  That's why I would like to ask, if it
> isn't time to drop the whole has_capability() function as well as the
> check_nt_auth() function and to remove calling this Cygwin-specific
> function throughout OpenSSH.  Right now it's called in auth1.c,
> auth2-pubkey.c, auth2-passwd.c, auth2-none.c and auth2-kbdint.c.
> That's a lot of #ifdef HAVE_CYGWIN which could go away :)
> 
> 
> Corinna
> 
> 
> Index: openbsd-compat/bsd-cygwin_util.c
> ===================================================================
> RCS file: /cvs/openssh/openbsd-compat/bsd-cygwin_util.c,v
> retrieving revision 1.19
> diff -u -p -r1.19 bsd-cygwin_util.c
> --- openbsd-compat/bsd-cygwin_util.c	1 Sep 2006 09:29:01 -0000	1.19
> +++ openbsd-compat/bsd-cygwin_util.c	14 Jul 2008 21:01:36 -0000
> @@ -175,45 +175,7 @@ check_nt_auth(int pwd_authenticated, str
>  int
>  check_ntsec(const char *filename)
>  {
> -	char *cygwin;
> -	int allow_ntea = 0, allow_ntsec = 0;
> -	struct statfs fsstat;
> -
> -	/* Windows 95/98/ME don't support file system security at all. */
> -	if (!is_winnt)
> -		return (0);
> -
> -	/* Evaluate current CYGWIN settings. */
> -	cygwin = getenv("CYGWIN");
> -	allow_ntea = ntea_on(cygwin);
> -	allow_ntsec = ntsec_on(cygwin) ||
> -	    (has_capability(HAS_NTSEC_BY_DEFAULT) && !ntsec_off(cygwin));
> -
> -	/*
> -	 * `ntea' is an emulation of POSIX attributes. It doesn't support
> -	 * real file level security as ntsec on NTFS file systems does
> -	 * but it supports FAT filesystems. `ntea' is minimum requirement
> -	 * for security checks.
> -	 */
> -	if (allow_ntea)
> -		return (1);
> -
> -	/*
> -	 * Retrieve file system flags. In Cygwin, file system flags are
> -	 * copied to f_type which has no meaning in Win32 itself.
> -	 */
> -	if (statfs(filename, &fsstat))
> -		return (1);
> -
> -	/*
> -	 * Only file systems supporting ACLs are able to set permissions.
> -	 * `ntsec' is the setting in Cygwin which switches using of NTFS
> -	 * ACLs to support POSIX permissions on files.
> -	 */
> -	if (fsstat.f_type & FS_PERSISTENT_ACLS)
> -		return (allow_ntsec);
> -
> -	return (0);
> +	return (pathconf(filename, _PC_POSIX_PERMISSIONS));
>  }
>  
>  void
> 
> -- 
> Corinna Vinschen
> Cygwin Project Co-Leader
> Red Hat
> _______________________________________________
> openssh-unix-dev mailing list
> openssh-unix-dev at mindrot.org
> https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev

-- 
Corinna Vinschen
Cygwin Project Co-Leader
Red Hat


More information about the openssh-unix-dev mailing list