[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