diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2015-04-17 11:56:15 +0200 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2015-04-23 22:01:53 +0200 |
commit | 83b3f891c4f6cb46162ddec41ace787aa11929b3 (patch) | |
tree | f779a23ea75b12d65c503917dd79c1b33e5216c8 /winsup/cygwin/passwd.cc | |
parent | 023be4aedbd5bfb0a56164a2803c9c24a0d546f5 (diff) | |
download | cygnal-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.cc | 4 |
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; |