[PATCH] permanently_set_uid: Don't try restoring gid on Cygwin

Corinna Vinschen vinschen at redhat.com
Thu Oct 7 23:25:30 EST 2004


Ping?

Corinna

On Sep 22 20:36, Corinna Vinschen wrote:
> Hi,
> 
> the below patch solves the same problem for gids as has already been
> solved for uids. Windows has no concept of permanently changing the
> identity.  It's always possible to revert to the original identity.
> 
> Thanks,
> Corinna
> 
> 
> Index: uidswap.c
> ===================================================================
> RCS file: /cvs/openssh_cvs/uidswap.c,v
> retrieving revision 1.44
> diff -p -u -r1.44 uidswap.c
> --- uidswap.c	24 Feb 2004 02:17:30 -0000	1.44
> +++ uidswap.c	22 Sep 2004 18:17:44 -0000
> @@ -200,10 +200,12 @@ permanently_set_uid(struct passwd *pw)
>  		fatal("setuid %u: %.100s", (u_int)pw->pw_uid, strerror(errno));
>  #endif
>  
> +#ifndef HAVE_CYGWIN
>  	/* Try restoration of GID if changed (test clearing of saved gid) */
>  	if (old_gid != pw->pw_gid &&
>  	    (setgid(old_gid) != -1 || setegid(old_gid) != -1))
>  		fatal("%s: was able to restore old [e]gid", __func__);
> +#endif
>  
>  	/* Verify GID drop was successful */
>  	if (getgid() != pw->pw_gid || getegid() != pw->pw_gid) {

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




More information about the openssh-unix-dev mailing list