Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/winsup
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2003-09-16 13:24:52 +0400
committerCorinna Vinschen <corinna@vinschen.de>2003-09-16 13:24:52 +0400
commit1498189ca897347251470f3dd35e97d2f20f0f4b (patch)
tree3ac8b2cab6b9f97257bceb614d92242b30909858 /winsup
parentc429c346d826abfc951fa1c5d520e10dd56549c4 (diff)
* cygheap.cc (cygheap_user::set_saved_sid): Rename from set_orig_sid.
* cygheap.h (class cygheap_user): Rename orig_psid, orig_uid and orig_gid to saved_psid, saved_uid and saved_gid respectively. Rename methods orig_sid and set_orig_sid to saved_sid and set_saved_sid respectively. * sec_helper.cc (sec_acl): Accomodate above changes. * spawn.cc (spawn_guts): Ditto. * uinfo.cc (uinfo_init): Ditto.
Diffstat (limited to 'winsup')
-rw-r--r--winsup/cygwin/ChangeLog11
-rw-r--r--winsup/cygwin/cygheap.cc9
-rw-r--r--winsup/cygwin/cygheap.h12
-rw-r--r--winsup/cygwin/sec_helper.cc2
-rw-r--r--winsup/cygwin/spawn.cc6
-rw-r--r--winsup/cygwin/uinfo.cc10
6 files changed, 31 insertions, 19 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 5bcc11aca..c4d79237f 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,14 @@
+2003-09-16 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygheap.cc (cygheap_user::set_saved_sid): Rename from set_orig_sid.
+ * cygheap.h (class cygheap_user): Rename orig_psid, orig_uid and
+ orig_gid to saved_psid, saved_uid and saved_gid respectively.
+ Rename methods orig_sid and set_orig_sid to saved_sid and set_saved_sid
+ respectively.
+ * sec_helper.cc (sec_acl): Accomodate above changes.
+ * spawn.cc (spawn_guts): Ditto.
+ * uinfo.cc (uinfo_init): Ditto.
+
2003-09-15 Christopher Faylor <cgf@redhat.com>
* getopt.c (opterr): Reinstate initialization.
diff --git a/winsup/cygwin/cygheap.cc b/winsup/cygwin/cygheap.cc
index af53795d0..2174f1d05 100644
--- a/winsup/cygwin/cygheap.cc
+++ b/winsup/cygwin/cygheap.cc
@@ -458,13 +458,14 @@ cygheap_user::set_sid (PSID new_sid)
}
BOOL
-cygheap_user::set_orig_sid ()
+cygheap_user::set_saved_sid ()
{
if (psid)
{
- if (!orig_psid) orig_psid = cmalloc (HEAP_STR, MAX_SID_LEN);
- if (orig_psid)
- return CopySid (MAX_SID_LEN, orig_psid, psid);
+ if (!saved_psid)
+ saved_psid = cmalloc (HEAP_STR, MAX_SID_LEN);
+ if (saved_psid)
+ return CopySid (MAX_SID_LEN, saved_psid, psid);
}
return FALSE;
}
diff --git a/winsup/cygwin/cygheap.h b/winsup/cygwin/cygheap.h
index b3ac71e5d..1d05446f9 100644
--- a/winsup/cygwin/cygheap.h
+++ b/winsup/cygwin/cygheap.h
@@ -107,10 +107,10 @@ class cygheap_user
char *pwinname; /* User's name as far as Windows knows it */
char *puserprof; /* User profile */
PSID psid; /* buffer for user's SID */
- PSID orig_psid; /* Remains intact even after impersonation */
+ PSID saved_psid; /* Remains intact even after impersonation */
public:
- __uid32_t orig_uid; /* Remains intact even after impersonation */
- __gid32_t orig_gid; /* Ditto */
+ __uid32_t saved_uid; /* Remains intact even after impersonation */
+ __gid32_t saved_gid; /* Ditto */
__uid32_t real_uid; /* Remains intact on seteuid, replaced by setuid */
__gid32_t real_gid; /* Ditto */
user_groups groups; /* Primary and supp SIDs */
@@ -128,7 +128,7 @@ public:
I've removed the constructor entirely. Please reinstate this f this
situation ever changes.
cygheap_user () : pname (NULL), plogsrv (NULL), pdomain (NULL),
- homedrive (NULL), homepath (NULL), psid (NULL),
+ homedrive (NULL), homepath (NULL),
token (INVALID_HANDLE_VALUE) {}
*/
@@ -161,9 +161,9 @@ public:
return (p == almost_null) ? NULL : p;
}
BOOL set_sid (PSID new_sid);
- BOOL set_orig_sid ();
+ BOOL set_saved_sid ();
PSID sid () const { return psid; }
- PSID orig_sid () const { return orig_psid; }
+ PSID saved_sid () const { return saved_psid; }
const char *ontherange (homebodies what, struct passwd * = NULL);
bool issetuid () const { return current_token != INVALID_HANDLE_VALUE; }
HANDLE token () { return current_token; }
diff --git a/winsup/cygwin/sec_helper.cc b/winsup/cygwin/sec_helper.cc
index 70817c5c5..db54bc079 100644
--- a/winsup/cygwin/sec_helper.cc
+++ b/winsup/cygwin/sec_helper.cc
@@ -386,7 +386,7 @@ sec_acl (PACL acl, bool original, bool admins, PSID sid1, PSID sid2, DWORD acces
if (!AddAccessAllowedAce (acl, ACL_REVISION,
GENERIC_ALL, sid1))
debug_printf ("AddAccessAllowedAce(sid1) %E");
- if (original && (psid = cygheap->user.orig_sid ())
+ if (original && (psid = cygheap->user.saved_sid ())
&& psid != sid1 && psid != well_known_system_sid)
if (!AddAccessAllowedAce (acl, ACL_REVISION,
GENERIC_ALL, psid))
diff --git a/winsup/cygwin/spawn.cc b/winsup/cygwin/spawn.cc
index 7b05a5c65..b6e126b82 100644
--- a/winsup/cygwin/spawn.cc
+++ b/winsup/cygwin/spawn.cc
@@ -625,11 +625,11 @@ spawn_guts (const char * prog_arg, const char *const *argv,
/* When ruid != euid we create the new process under the current original
account and impersonate in child, this way maintaining the different
effective vs. real ids.
- FIXME: If ruid != euid and ruid != orig_uid we currently give
+ FIXME: If ruid != euid and ruid != saved_uid we currently give
up on ruid. The new process will have ruid == euid. */
if (!cygheap->user.issetuid ()
- || (cygheap->user.orig_uid == cygheap->user.real_uid
- && cygheap->user.orig_gid == cygheap->user.real_gid
+ || (cygheap->user.saved_uid == cygheap->user.real_uid
+ && cygheap->user.saved_gid == cygheap->user.real_gid
&& !cygheap->user.groups.issetgroups ()))
{
PSECURITY_ATTRIBUTES sec_attribs = sec_user_nih (sa_buf);
diff --git a/winsup/cygwin/uinfo.cc b/winsup/cygwin/uinfo.cc
index 342c398ae..ff33221ba 100644
--- a/winsup/cygwin/uinfo.cc
+++ b/winsup/cygwin/uinfo.cc
@@ -128,8 +128,8 @@ uinfo_init ()
/* Conditions must match those in spawn to allow starting child
processes with ruid != euid and rgid != egid. */
else if (cygheap->user.issetuid ()
- && cygheap->user.orig_uid == cygheap->user.real_uid
- && cygheap->user.orig_gid == cygheap->user.real_gid
+ && cygheap->user.saved_uid == cygheap->user.real_uid
+ && cygheap->user.saved_gid == cygheap->user.real_gid
&& !cygheap->user.groups.issetgroups ())
{
cygheap->user.reimpersonate ();
@@ -138,12 +138,12 @@ uinfo_init ()
else
cygheap->user.close_impersonation_tokens ();
- cygheap->user.orig_uid = cygheap->user.real_uid = myself->uid;
- cygheap->user.orig_gid = cygheap->user.real_gid = myself->gid;
+ cygheap->user.saved_uid = cygheap->user.real_uid = myself->uid;
+ cygheap->user.saved_gid = cygheap->user.real_gid = myself->gid;
cygheap->user.external_token = INVALID_HANDLE_VALUE;
cygheap->user.internal_token = INVALID_HANDLE_VALUE;
cygheap->user.current_token = INVALID_HANDLE_VALUE;
- cygheap->user.set_orig_sid (); /* Update the original sid */
+ cygheap->user.set_saved_sid (); /* Update the original sid */
}
extern "C" char *