diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2000-06-24 17:37:52 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2000-06-24 17:37:52 +0000 |
commit | bb34ad9674effea3d4401186cd729e4feb9ad881 (patch) | |
tree | 48b9a33c9fc19a785aa752b1c38aa595a2303b80 /winsup/cygwin/fork.cc | |
parent | 92b3b0a6ad364b3f0d8726668f964a1ee10691a5 (diff) | |
download | cygnal-bb34ad9674effea3d4401186cd729e4feb9ad881.tar.gz cygnal-bb34ad9674effea3d4401186cd729e4feb9ad881.tar.bz2 cygnal-bb34ad9674effea3d4401186cd729e4feb9ad881.zip |
* fork.cc (fork): Fix error in copying SID pointer.
* spawn.cc (_spawnve): Ditto.
* passwd.cc: Remove static from `passwd_in_memory_p'.
(read_etc_passwd): Remove static.
* uinfo.cc: Move global declaration of `read_etc_group' and
`group_in_memory_p' into `uinfo_init'.
(internal_getlogin): Try to get SID from current process first.
(uinfo_init): Don't set uid and gid if `myself' has a valid SID.
Only load /etc/passwd and /etc/group in that case.
Diffstat (limited to 'winsup/cygwin/fork.cc')
-rw-r--r-- | winsup/cygwin/fork.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/winsup/cygwin/fork.cc b/winsup/cygwin/fork.cc index b0248026b..f3b32b7f9 100644 --- a/winsup/cygwin/fork.cc +++ b/winsup/cygwin/fork.cc @@ -419,8 +419,9 @@ fork () child->process_state |= PID_INITIALIZING | (myself->process_state & PID_USETTY); memcpy (child->username, myself->username, MAX_USER_NAME); - child->psid = myself->psid; memcpy (child->sidbuf, myself->sidbuf, 40); + if (myself->psid) + child->psid = child->sidbuf; memcpy (child->logsrv, myself->logsrv, 256); memcpy (child->domain, myself->domain, MAX_COMPUTERNAME_LENGTH+1); child->token = myself->token; |