* cygheap.h (class cygheap_user): Add member `orig_psid'.
Add method `orig_sid()'. * cygheap.cc (cygheap_user::set_sid): Maintain orig_psid.
This commit is contained in:
parent
84d06cb64d
commit
6327de5fef
|
@ -1,3 +1,9 @@
|
|||
2002-05-08 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* cygheap.h (class cygheap_user): Add member `orig_psid'.
|
||||
Add method `orig_sid()'.
|
||||
* cygheap.cc (cygheap_user::set_sid): Maintain orig_psid.
|
||||
|
||||
2002-04-28 Norbert Schulze <norbert.schulze@web.de>
|
||||
|
||||
* localtime.cc (tzsetwall): Use wildabbr if generated timezone name
|
||||
|
|
|
@ -468,13 +468,23 @@ cygheap_user::set_sid (PSID new_sid)
|
|||
{
|
||||
if (psid)
|
||||
cfree (psid);
|
||||
if (orig_psid)
|
||||
cfree (orig_psid);
|
||||
psid = NULL;
|
||||
orig_psid = NULL;
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!psid)
|
||||
{
|
||||
if (!orig_psid)
|
||||
{
|
||||
orig_psid = cmalloc (HEAP_STR, MAX_SID_LEN);
|
||||
CopySid (MAX_SID_LEN, orig_psid, new_sid);
|
||||
}
|
||||
psid = cmalloc (HEAP_STR, MAX_SID_LEN);
|
||||
}
|
||||
return CopySid (MAX_SID_LEN, psid, new_sid);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -94,6 +94,7 @@ class cygheap_user
|
|||
char *plogsrv; /* Logon server, may be FQDN */
|
||||
char *pdomain; /* Logon domain of the user */
|
||||
PSID psid; /* buffer for user's SID */
|
||||
PSID orig_psid; /* Remains intact even after impersonation */
|
||||
public:
|
||||
__uid16_t orig_uid; /* Remains intact even after impersonation */
|
||||
__uid16_t orig_gid; /* Ditto */
|
||||
|
@ -120,6 +121,7 @@ public:
|
|||
|
||||
BOOL set_sid (PSID new_sid);
|
||||
PSID sid () const { return psid; }
|
||||
PSID orig_sid () const { return orig_psid; }
|
||||
|
||||
void operator =(cygheap_user &user)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue