summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/spawn.cc
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2000-06-24 17:37:52 +0000
committerCorinna Vinschen <corinna@vinschen.de>2000-06-24 17:37:52 +0000
commitbb34ad9674effea3d4401186cd729e4feb9ad881 (patch)
tree48b9a33c9fc19a785aa752b1c38aa595a2303b80 /winsup/cygwin/spawn.cc
parent92b3b0a6ad364b3f0d8726668f964a1ee10691a5 (diff)
downloadcygnal-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/spawn.cc')
-rw-r--r--winsup/cygwin/spawn.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/winsup/cygwin/spawn.cc b/winsup/cygwin/spawn.cc
index 7225c5377..6ec011914 100644
--- a/winsup/cygwin/spawn.cc
+++ b/winsup/cygwin/spawn.cc
@@ -847,8 +847,9 @@ _spawnve (HANDLE hToken, int mode, const char *path, const char *const *argv,
if (!hToken && !myself->token)
{
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);
}