summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/passwd.cc
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2015-04-17 11:56:15 +0200
committerCorinna Vinschen <corinna@vinschen.de>2015-04-23 22:01:53 +0200
commit83b3f891c4f6cb46162ddec41ace787aa11929b3 (patch)
treef779a23ea75b12d65c503917dd79c1b33e5216c8 /winsup/cygwin/passwd.cc
parent023be4aedbd5bfb0a56164a2803c9c24a0d546f5 (diff)
downloadcygnal-83b3f891c4f6cb46162ddec41ace787aa11929b3.tar.gz
cygnal-83b3f891c4f6cb46162ddec41ace787aa11929b3.tar.bz2
cygnal-83b3f891c4f6cb46162ddec41ace787aa11929b3.zip
Fix broken PSID problem on cygheap in account handling
* pwdgrp.h: Add comment to explain below change. (struct pg_pwd): Convert sid member to BYTE array. (struct pg_grp): Ditto. * grp.cc (pwdgrp::parse_group): Accommodate above change. * passwd.cc (pwdgrp::parse_passwd): Ditto. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Diffstat (limited to 'winsup/cygwin/passwd.cc')
-rw-r--r--winsup/cygwin/passwd.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/winsup/cygwin/passwd.cc b/winsup/cygwin/passwd.cc
index 7493aa443..54e429ccf 100644
--- a/winsup/cygwin/passwd.cc
+++ b/winsup/cygwin/passwd.cc
@@ -40,7 +40,9 @@ pwdgrp::parse_passwd ()
res.p.pw_gecos = next_str (':');
res.p.pw_dir = next_str (':');
res.p.pw_shell = next_str (':');
- res.sid.getfrompw_gecos (&res.p);
+ cygsid csid;
+ csid.getfrompw_gecos (&res.p);
+ RtlCopySid (SECURITY_MAX_SID_SIZE, res.sid, csid);
/* lptr points to the \0 after pw_shell. Increment by one to get the correct
required buffer len in getpw_cp. */
res.len = lptr - res.p.pw_name + 1;