diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index b44351f0c..6ff5adfda 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,10 @@ +2002-06-24 Corinna Vinschen + + * uinfo.cc (internal_getlogin): Set myself->uid and myself->gid instead + of user.real_uid and user.real_gid. + (uinfo_init): Evaluate orig_uid and real_uid from myself->uid. Ditto + for gid. + 2002-06-23 Pierre Humblet * security.cc (get_group_sidlist): Add pw argument and use pw->pw_name diff --git a/winsup/cygwin/uinfo.cc b/winsup/cygwin/uinfo.cc index fe9e30db7..e1e907729 100644 --- a/winsup/cygwin/uinfo.cc +++ b/winsup/cygwin/uinfo.cc @@ -88,13 +88,13 @@ internal_getlogin (cygheap_user &user) if (pw) { - user.real_uid = pw->pw_uid; - user.real_gid = pw->pw_gid; + myself->uid = pw->pw_uid; + myself->gid = pw->pw_gid; } else { - user.real_uid = DEFAULT_UID; - user.real_gid = DEFAULT_GID; + myself->uid = DEFAULT_UID; + myself->gid = DEFAULT_GID; } (void) cygheap->user.ontherange (CH_HOME, pw); @@ -109,8 +109,8 @@ uinfo_init () internal_getlogin (cygheap->user); /* Set the cygheap->user. */ /* Real and effective uid/gid are identical on process start up. */ - myself->uid = cygheap->user.orig_uid = cygheap->user.real_uid; - myself->gid = cygheap->user.orig_gid = cygheap->user.real_gid; + cygheap->user.orig_uid = cygheap->user.real_uid = myself->uid; + cygheap->user.orig_gid = cygheap->user.real_gid = myself->gid; cygheap->user.set_orig_sid(); /* Update the original sid */ cygheap->user.token = INVALID_HANDLE_VALUE; /* No token present */