diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2009-10-30 22:58:53 +0300 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2009-10-30 22:58:53 +0300 |
commit | b42441d32b5a08a8d0e192535aaf7230236b2865 (patch) | |
tree | 43e5eef49ba6368ed8932a5405ed50f6d8805489 /winsup/cygwin/sec_helper.cc | |
parent | 53be6f3df61def98835a5b665064e2501986ccbd (diff) |
* sec_helper.cc (security_descriptor::free): If sd_size is 0, call
LocalFree instead of ::free.
* sec_acl.cc: Throughout replace old ACE flag definitions with current
definitions as used in MSDN man pages.
* security.cc: Ditto.
* fhandler.cc (fhandler_base::open): Make sure file has really been
just created before fixing file permissions. Add S_JUSTCREATED
attribute to set_file_attribute call.
* fhandler_disk_file.cc (fhandler_disk_file::mkdir): Always create dir
with default security descriptor and fix descriptor afterwards.
Add S_JUSTCREATED flag to set_file_attribute call.
* fhandler_socket.cc (fhandler_socket::bind): Ditto for AF_LOCAL
socket files.
* path.cc (symlink_worker): Ditto for symlinks.
* security.cc (get_file_sd): Call GetSecurityInfo rather than
NtQuerySecurityObject. Explain why. Change error handling accordingly.
(alloc_sd): Skip non-inherited, non-standard entries in ACL if
S_JUSTCREATED attribute is set. Explain why. Minor format fixes.
* security.h (S_JUSTCREATED): New define.
(security_descriptor::operator=): New operator.
Diffstat (limited to 'winsup/cygwin/sec_helper.cc')
-rw-r--r-- | winsup/cygwin/sec_helper.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/winsup/cygwin/sec_helper.cc b/winsup/cygwin/sec_helper.cc index 63be25c5d..f8e01452f 100644 --- a/winsup/cygwin/sec_helper.cc +++ b/winsup/cygwin/sec_helper.cc @@ -298,7 +298,12 @@ void security_descriptor::free () { if (psd) - ::free (psd); + { + if (!sd_size) + LocalFree (psd); + else + ::free (psd); + } psd = NULL; sd_size = 0; } |