summaryrefslogtreecommitdiffstats
path: root/winsup
diff options
context:
space:
mode:
Diffstat (limited to 'winsup')
-rw-r--r--winsup/cygwin/ChangeLog2261
-rw-r--r--winsup/cygwin/ChangeLog-20152260
2 files changed, 2261 insertions, 2260 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 546df2489..62f63d500 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,2260 +1 @@
-2015-12-25 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Only request
- query_write_dac rather than query_write_control access when writing
- an ACL. Fix a comment.
-
-2015-12-24 Corinna Vinschen <corinna@vinschen.de>
-
- * sec_acl.cc (__aclcalcmask): New function to recalculate ACL masks.
- (aclsort32): Honor calclass argument.
-
-2015-12-24 Corinna Vinschen <corinna@vinschen.de>
-
- * sec_acl.cc (aclfromtext32): Return missing aclcnt parameter.
-
-2015-12-24 Corinna Vinschen <corinna@vinschen.de>
-
- * sec_acl.cc (acltotext32): Use tmp_pathbuf rather than stack buffer.
- (aclfromtext32): Ditto.
-
-2015-12-24 Corinna Vinschen <corinna@vinschen.de>
-
- * sec_acl.cc: Cosmetic changes.
-
-2015-12-18 Corinna Vinschen <corinna@vinschen.de>
-
- * strfuncs.cc (sys_cp_wcstombs): Delete and move functionality into
- sys_wcstombs.
- * wchar.h (sys_cp_wcstombs): Drop declaration.
- * fhandler_console.cc (dev_console::con_to_str): Call sys_wcstombs.
-
-2015-12-16 Corinna Vinschen <corinna@vinschen.de>
-
- * grp.cc (pwdgrp::parse_group): Only copy the SID if it's valid.
- * passwd.cc (pwdgrp::parse_passwd): Ditto.
-
-2015-12-14 Sebastian Huber <sebastian.huber@embedded-brains.de>
-
- * include/cygwin/signal.h (sigset_t): Move defintition to newlib.
-
-2015-12-11 Ken Brown <kbrown@cornell.edu>
-
- * fhandler_disk_file.cc (fhandler_base::fstat_helper): Align
- regparm attribute to declaration in fhandler.h.
-
-2015-12-10 Corinna Vinschen <corinna@vinschen.de>
-
- * path.h (class path_conv_handle): Use FILE_ALL_INFORMATION instead of
- FILE_NETWORK_OPEN_INFORMATION. Use definitions from ntdll.h since it's
- included anyway.
- (path_conv_handle::fai): Change name from fnoi.
- (path_conv::fai): Ditto.
- (file_get_fai): Change name from file_get_fnoi. Drop second parameter.
- * path.cc (file_get_fai): Ditto. Fetch FileAllInformation rather than
- FileNetworkOpenInformation. Convert STATUS_BUFFER_OVERFLOW to
- STATUS_SUCCESS. Remove workaround to fetch FileBasicInformation and
- FileStandardInformation on filesystems with broken
- FileNetworkOpenInformation handling.
- (symlink_info::check): Accommodate above changes. In case of using
- the NtQueryDirectoryFile fallback, fetch FileIdBothDirectoryInformation
- to get inode number as well.
- * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Drop outdated
- comment. Accommodate change to using FileAllInformation. Drop
- extra function calls to fetch NumberOfLinks and IndexNumber. Set ino
- directly from IndexNumber stored in pc.fai(). Drop second argument
- from call to fstat_helper.
- (fhandler_base::fstat_by_name): Drop second argument from call to
- fstat_helper.
- (fhandler_base::fstat_helper): Drop second parameter. Accommodate
- the fact that we access a FILE_ALL_INFORMATION structure now.
- (fhandler_base::open_fs): Set ino directly from IndexNumber stored in
- pc.fai().
- * fhandler.h (fhandler_base::fstat_helper): Fix declaration accrdingly.
-
-2015-12-10 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_disk_file.cc (path_conv::ndisk_links): Drop unused method.
- (fhandler_base::fstat_helper): Drop unused call to ndisk_links.
-
-2015-12-10 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_disk_file.cc (path_conv::get_ino_by_handle): Rename fai to
- fii for clearness.
- (fhandler_disk_file::readdir): Ditto.
-
-2015-12-09 Corinna Vinschen <corinna@vinschen.de>
-
- * ntdll.h (FILE_ID_BOTH_DIR_INFORMATION): Revert IndexNumber to FileId
- since it's actually right here.
- * fhandler_disk_file.cc: Accommodate above change.
-
-2015-12-08 Corinna Vinschen <corinna@vinschen.de>
-
- * thread.cc (pthread::setcancelstate): Remove unnecessary locking.
- (pthread::setcanceltype): Ditto.
-
-2015-12-08 Corinna Vinschen <corinna@vinschen.de>
-
- * ntdll.h (FILE_ID_BOTH_DIR_INFORMATION): Rename FileId to IndexNumber
- to align with Microsoft naming scheme.
- (FILE_INTERNAL_INFORMATION): Ditto.
- * fhandler_disk_file.cc: Rename FileId to IndexNumber throughout.
- * syscalls.cc: Ditto.
-
-2015-12-07 Johannes Schindelin <johannes.schindelin@gmx.de>
-
- * mount.cc (mount_info::from_fstab_line): Support mounting the current
- user's temp folder as /tmp/. This is particularly useful a feature
- when Cygwin's own files are write-protected.
-
-2015-12-07 Corinna Vinschen <corinna@vinschen.de>
-
- * include/sys/select.h: Move select(2) macros from newlib's sys/types.h
- here. Rename howmany to _howmany to unclutter namespace. Move file to
- newlib.
- * libc/rexex.cc: Add declaration for cygwin_gethostname.
- * poll.cc: Include sys/param.h and locale select.h.
- * select.h (cygwin_select): Declare.
- * uname.cc: Declare cygwin_gethostname.
- * winsup.h: Drop declarations of cygwin_select and cygwin_gethostname.
-
-2015-12-07 Corinna Vinschen <corinna@vinschen.de>
-
- * dcrt0.cc: Semi-revert commit 12743c2d5d2721f3a80b4d7671a349be03c1f520.
- (dll_crt0_0): Drop setting wow64_needs_stack_adjustment on 64 bit.
- (_dll_crt0): Split out 64 bit code again and always create new main
- thread stack, unless forked off from the non main thread in the parent.
- Call create_new_main_thread_stack with parent stack commitsize if
- started from the parent's main thread.
- Only call child_info_fork::alloc_stack for the latter case on 64 bit.
- Slightly rearrange moving rsp and rbp to new stack and document how.
- Revert 32 bit wow64 handling to its former self.
- * miscfunc.cc (create_new_main_thread_stack): Take a commitsize
- parameter and use it if it's not 0. Don't set _main_tls here, it's
- done in the caller _dll_crt0 anyway. Return stackbase - 16 bytes,
- rather than stacklimit (which was very wrong anyway).
- * miscfuncs.h (create_new_main_thread_stack): Accommodate declaration
- to aforementioned change.
- * wincap.h (wincaps::has_3264_stack_broken): Remove element.
- * wincap.cc: Ditto, throughout.
- * wow64.cc: Semi-revert to pre-12743c2d5d2721f3a80b4d7671a349be03c1f520
- but keep architecture-agnostic type changes intact. Fix formatting.
- * wow64.h: Revert to pre-12743c2d5d2721f3a80b4d7671a349be03c1f520.
-
-2015-12-06 Corinna Vinschen <corinna@vinschen.de>
-
- * include/sys/cygwin.h (CCP_PROC_CYGDRIVE): New flag.
- * mount.cc (mount_info::cygdrive_posix_path): Take flag values rather
- than just a trailing_slash_p bool. Emit /proc/cygdrive path if
- CCP_PROC_CYGDRIVE flag is given.
- (mount_info::conv_to_posix_path): Take flag values rather than just
- a keep_rel_p bool. Rename _p variables. Print flag value as hex in
- debug_printf. Call cygdrive_posix_path with flag values.
- * mount.h (mount_info::cygdrive_posix_path): Accommodate above change
- in declaration.
- (mount_info::conv_to_posix_path): Ditto.
- * fhandler_process.cc (format_process_exename): Accommodate change to
- mount_info::conv_to_posix_path.
- * path.cc (cygwin_conv_path): Ditto.
-
-2015-12-03 Corinna Vinschen <corinna@vinschen.de>
-
- * dcrt0.cc (dll_crt0_0): On 64 bit, set wow64_needs_stack_adjustment
- if not started from a 64 bit process.
- (_dll_crt0): Enable wow64_needs_stack_adjustment branch on 64 bit
- as well. Remove 64 bit only code. Introduce CREATE_STACK and
- FIX_STACK macros to conditionalize the code. Rearrange and
- partially rewrite comments.
- * wincap.h (wincaps::has_3264_stack_broken): New element.
- * wincap.cc: Implement above element throughout.
- (wincapc::init): Set has_3264_stack_broken to false on 32 bit.
- * wow64.cc: Enable functionality on 64 bit architecture, except for
- wow64_revert_to_original_stack. Enhance comments to explain.
- (wow64_eval_expected_main_stack): Make 64 bit clean.
- (wow64_test_for_64bit_parent): Ditto.
- * wow64.h: Export wow64_revert_to_original_stack on 32 bit only,
- everything else on all architectures.
-
-2015-12-03 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_process.cc (thread_info::thread_info): Accommodate the fact
- that TEBs take two pages.
- (thread_info::fill_if_match): Rewrite the method for post W10 1511 TEB
- detection.
- (format_process_maps): Add a state member to region. Fix the code
- to handle PEB/TEB region since W10 1511.
-
-2015-12-03 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_process.cc (heap_info::fill_if_match): Return NULL, not 0.
- (thread_info::fill_if_match): Ditto.
- (thread_info::fill_if_match): New method to extract TEB info from
- PEB/TEB region since W10 1511.
- (format_process_maps): Drop outdated FIXME comment. Add code to handle
- PEB/TEB region since W10 1511.
- * mmap.cc (posix_madvise): Align comment to new W10 1511 version.
- * wincap.h (wincaps::has_new_pebteb_region): New element.
- * wincap.cc: Implement above element throughout.
- (wincap_10_1511): New global wincaps to support Windows 10 since 1511.
- (wincapc::init): Use wincap_10_1511 for W10 builds >= 10586.
-
-2015-12-03 Corinna Vinschen <corinna@vinschen.de>
-
- x86_64 only:
- * dcrt0.cc (_dll_crt0): Always move stack to pthread stack area.
- Explain why.
- * miscfuncs.cc (create_new_main_thread_stack): New function to create
- OS-like stack for main thread in pthread stack area.
- * miscfuncs.cc (create_new_main_thread_stack): Declare.
-
-2015-12-03 Corinna Vinschen <corinna@vinschen.de>
-
- * dcrt0.cc (child_info_fork::alloc_stack): Fix formatting.
- * fork.cc (frok::parent): Fix formatting.
- (child_copy): Change type of res to BOOL.
-
-2015-12-03 Corinna Vinschen <corinna@vinschen.de>
-
- * crt0.cc (dll_crt0_1): Always restore the TEB stack info. Especially
- restore DeallocationStack. Fix comment.
-
-2015-12-03 Corinna Vinschen <corinna@vinschen.de>
-
- * dcrt0.cc (child_info_fork::alloc_stack): Don't set stackaddr to 0.
-
-2015-12-03 Corinna Vinschen <corinna@vinschen.de>
-
- * child_info.h (struct child_info): Add member from_main.
- * fork.cc (frok::child): Check from_main rather than stackaddr.
- (frok::parent): Set ch.from_main if running in the main thread.
-
-2015-12-02 Corinna Vinschen <corinna@vinschen.de>
-
- * child_info.h (CURR_CHILD_INFO_MAGIC): Align to below change.
- (class child_info_fork): Rename stacktop to stacklimit. Rename
- stackbottom to stackbase. Accommodate name change throughout Cygwin.
- Rephrase comments to be clearer.
-
-2015-12-02 Corinna Vinschen <corinna@vinschen.de>
-
- * cygtls.h (_tlsbase): Remove. Replace throughout with
- NtCurrentTeb()->Tib.StackBase.
- (_tlstop): Remove. Replace throughout with
- NtCurrentTeb()->Tib.StackLimit.
- * dcrt0.cc (child_info_fork::alloc_stack): Move definition of local
- teb variable up to be used throughout.
- * include/cygwin/config.h (__getreent): Use inline function on both
- architectures.
-
-2015-11-29 Corinna Vinschen <corinna@vinschen.de>
-
- * uinfo.cc (pwdgrp::fetch_account_from_windows): Only create 1-5-32-x
- SIDs from ids for x <= 999.
-
-2015-11-29 Corinna Vinschen <corinna@vinschen.de>
-
- * sec_acl.cc (get_posix_access): In case owner SID == group SID, when
- encountering the group entry, change the value of `id' accordingly.
- Explain why.
-
-2015-11-28 Corinna Vinschen <corinna@vinschen.de>
-
- * gendef (sigdelayed): Save and restore content of the MXCSR register
- on x86_64.
-
-2015-11-27 Corinna Vinschen <corinna@vinschen.de>
-
- * cygtls.h (_cygtls::wait_signal_arrived): Renamed from
- set_signal_arrived.
- (_cygtls::set_signal_arrived): New function signalling signal_arrived.
- (_cygtls::reset_signal_arrived): Don't reset will_wait_for_signal.
- (_cygtls::unwait_signal_arrived): New function only resetting
- will_wait_for_signal.
- (class wait_signal_arrived): Rename from set_signal_arrived.
- Accommodate name change throughout Cygwin.
- (wait_signal_arrived::~wait_signal_arrived): Call
- _cygtls::unwait_signal_arrived. Add comment.
- * cygserver_ipc.h (ipc_set_proc_info): Fetch signal_arrived handle
- via call to _cygtls::get_signal_arrived.
- * exceptions.cc (_cygtls::interrupt_setup): Signal signal_arrived via
- call to _cygtls::set_signal_arrived.
- (_cygtls::handle_SIGCONT): Ditto.
- * fhandler_socket.cc (fhandler_socket::wait_for_events): Generate
- WSAEVENT array prior to entering wait loop. Add cancel event object
- if available. Remove calls to pthread_testcancel and just call
- pthread::static_cancel_self if the cancel event object is signalled.
-
-2015-11-26 Corinna Vinschen <corinna@vinschen.de>
-
- * path.cc (symlink_native): Fix index when looking for colon in path.
-
-2015-11-21 Corinna Vinschen <corinna@vinschen.de>
-
- * nlsfuncs.cc (setlocaleinfo): New macro calling __setlocaleinfo.
- (__setlocaleinfo): New function to set a locale-specific character
- to an explicit wchar_t value.
- (__set_lc_numeric_from_win): Handle fa_IR and ps_AF locales to return
- same decimal point and thousands separator characters as on Linux.
- (__set_lc_monetary_from_win): Ditto for monetary characters.
-
-2015-11-20 Corinna Vinschen <corinna@vinschen.de>
-
- * common.din (strtold): Drop redirection to _strtold.
-
-2015-11-18 Corinna Vinschen <corinna@vinschen.de>
-
- * sec_acl.cc (get_posix_access): Skip merging permissions if current
- user has rwx permissions anywa, or if the sum of all group and other
- permissions is less than or equal to the user's permissions.
-
-2015-11-18 Corinna Vinschen <corinna@vinschen.de>
-
- * sec_acl.cc (get_posix_access): Fix computation of effective user
- permissions to handle current user, not only the file owner.
-
-2015-11-18 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_tty.cc (fhandler_pty_slave::open): Add S_IFCHR flag
- in call to create_object_sd_from_attribute.
- (fhandler_pty_slave::fstat): Ditto in call to get_object_attribute.
- (fhandler_pty_slave::fchmod): Add an orig_mode flag and ditto for
- both calls.
- (fhandler_pty_master::setup): Ditto in call to
- create_object_sd_from_attribute.
- * security.cc (get_object_attribute): Never add S_IFCHR to mode
- here. Let the caller decide.
- (create_object_sd_from_attribute): Ditto.
-
-2015-11-18 Corinna Vinschen <corinna@vinschen.de>
-
- * security.h (authz_get_user_attribute): Declare bool.
- * sec_helper.cc (authz_ctx::get_user_attribute): Make bool method.
- Set S_IxOTH bits in returned attributes rather than S_IxUSR bits.
- (authz_get_user_attribute): Make bool function.
- * sec_acl.cc (get_posix_access): Introduce cygsid array to keep
- track of all SIDs in the ACL. Move AuthZ calls into !new_style
- permission post processing. When not using AuthZ, use
- CheckTokenMembership to collect group permissions.
-
-2015-11-18 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Disable
- deviation from POSIX 1003.1e in terms of GROUP_OBJ/CLASS_OBJ
- permissions. Follow POSIX 1003.1e again. Keep old code in
- for future reference.
- * sec_acl.cc: Accommodate changes in ACE creation in leading
- comment.
- (set_posix_access): Fix user deny ACE creation. Split group
- deny ACE creation into two steps, one to reflect CLASS_OBJ,
- the other to reflect OTHER_OBJ.
-
-2015-11-18 Corinna Vinschen <corinna@vinschen.de>
-
- * sec_acl.cc (getacl): Use Authz to fetch correct user permissions.
-
-2015-11-18 Corinna Vinschen <corinna@vinschen.de>
-
- * autoload.cc (AuthzAccessCheck): Import.
- (AuthzFreeContext): Import.
- (AuthzInitializeContextFromSid): Import.
- (AuthzInitializeContextFromToken): Import.
- (AuthzInitializeResourceManager): Import.
- * sec_helper.cc (get_sids_info): Remove.
- (class authz_ctx_cache_entry): New class.
- (class authz_ctx_cache): New class.
- (class authz_ctx): New class.
- (authz_get_user_attribute): New function.
- * security.h (get_sids_info): Drop prototype.
- (authz_get_user_attribute): Add prototype.
- * winlean.h (_AUTHZ_): Define.
-
-2015-11-18 Corinna Vinschen <corinna@vinschen.de>
-
- * sec_acl.cc (get_posix_access): Fix class_perm in !new_style case.
-
-2015-11-18 Corinna Vinschen <corinna@vinschen.de>
-
- Reapply POSIX ACL changes.
-
- * sec_acl.cc (get_posix_access): Check for Cygwin "standard" ACL.
- Apply umask, if so. Align comments.
- * security.cc (set_created_file_access): Fix permission masking by
- incoming requested file mode.
-
- * sec_acl.cc (set_posix_access): Apply mask only in terms of execute bit
- for SYSTEM and Admins group.
-
- * sec_acl.cc (set_posix_access): Don't create DENY ACEs for USER and
- GROUP entries if they are the same as USER_OBJ or GROUP_OBJ.
-
- * fhandler.h (fhandler_pty_slave::facl): Add prototype.
- * fhandler_tty.cc (fhandler_pty_slave::facl): New method.
- (fhandler_pty_slave::fchown): Fix uid/gid handling.
- * sec_acl.cc (set_posix_access): Drop superfluous class_idx variable.
- Simplify and move around code in a few places. To improve ACL
- readability, add r/w permissions to Admins ACE appended to pty ACL.
- Add comment to explain Windows ACE Mask filtering being in the way of
- creating a real CLASS_OBJ.
- (get_posix_access): Fake CLASS_OBJ for ptys. Explain why.
- * security.cc (get_object_attribute): Add S_IFCHR flag to attributes
- when calling get_posix_access.
-
- * sec_acl.cc (set_posix_access): Move merging group perms into owner
- perms in case of owner == group after mask has been computed. Take
- mask into account when doing so to avoid unnecessary ACCESS_DENIED_ACE.
-
- * sec_acl.cc (get_posix_access): Only set saw_group_obj flag if we saw
- the ACCESS_ALLOWED_ACE.
-
- * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Deliberatly
- set GROUP_OBJ and CLASS_OBJ perms to new group perms. Add comment
- to explain why.
- * security.cc (set_created_file_access): Ditto.
-
- * sec_acl.cc (set_posix_access): Replace previous patch. Return
- EINVAL if uid and/or guid is invalid and not backed by an actual
- Windows account.
-
- * sec_acl.cc (set_posix_access): Workaround owner/group SIDs being NULL.
-
- * sec_acl.cc (set_posix_access): Handle files with owner == group.
- Rephrase switch statement checking against unfiltered a_type value.
- (get_posix_access): Handle files with owner == group.
-
- * sec_acl.cc (get_posix_access): Don't use GROUP_OBJ access to fix up
- CLASS_OBJ mask on old-style ACLs. Fix a comment.
-
- * sec_acl.cc (set_posix_access): Always make sure Admins have
- WRITE_DAC and WRITE_OWNER permissions.
- * security.h (create_object_sd_from_attribute): Drop handle parameter
- from prototype.
- * security.cc (create_object_sd_from_attribute): Drop handle parameter.
- Just create the standard POSIXy security descriptor.
- (set_object_attribute): Accommodate dropped paramter in call to
- create_object_sd_from_attribute.
- * fhandler_tty.cc: Ditto, throughout.
-
- * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Fix typo in
- mask computation.
-
- * fhandler.cc (fhandler_base::open_with_arch): Call open with mode
- not umasked.
- (fhandler_base::open): Explicitely umask mode on NFS here. Call new
- set_created_file_access rather than set_file_attribute.
- * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Reimplement
- setting permissions on filesystems supporting ACLs using the new
- set_posix_access call.
- (fhandler_disk_file::fchown): Ditto.
- (fhandler_disk_file::mkdir): Call new set_created_file_access rather
- than set_file_attribute.
- * fhandler_socket.cc (fhandler_socket::bind): Don't umask here. Add
- WRITE_OWNER access to allow writing group in case of SGID bit set.
- Call new set_created_file_access rather than set_file_attribute.
- * path.cc (symlink_worker): Call new set_created_file_access rather
- than set_file_attribute.
- * sec_acl.cc (searchace): Un-staticize.
- (set_posix_access): New, complementary functionality to
- get_posix_access.
- (setacl): Implement in terms of get_posix_access/set_posix_access.
- (get_posix_access): Add handling for just created files requiring
- their first Cygwin ACL. Fix new_style recognition. Handle SGID
- bit. For old-style ACLs, ignore SYSTEM and Administrators when
- computing the {DEF_}CLASS_OBJ perms.
- * security.cc (get_file_sd): Revamp comment. Change and (hopefully)
- speed up inheritance processing for just created files.
- (alloc_sd): Remove.
- (set_security_attribute): Call set_posix_access instead of alloc_sd.
- (get_object_attribute): Fix return value.
- (create_object_sd_from_attribute): Call set_posix_access instead of
- alloc_sd.
- (set_file_attribute): Remove.
- (set_created_file_access): New function implemented in terms of
- get_posix_access/set_posix_access.
- * security.h (set_file_attribute): Remove prototype.
- (set_created_file_access): Add prototype.
- (searchace): Ditto.
- (set_posix_access): Ditto.
- * syscalls.cc (open): Call open_with_arch with mode not umasked.
-
- * sec_acl.cc: Change preceeding comment explaining new-style ACLs.
- Describe how to generate deny ACEs in more detail. Accommodate the
- fact that a NULL deny ACE is used for {DEF_}CLASS_OBJ, rather than
- a special Cygwin ACE. Improve further comments.
- (CYG_ACE_NEW_STYLE): Define.
- (get_posix_access): Change from Cygwin ACE to NULL deny ACE. Fix
- CLASS_OBJ handling to generate CLASS_OBJ and DEF_CLASS_OBJ from a single
- NULL deny ACE if the inheritance flags say so.
- * sec_helper.cc (well_known_cygwin_sid): Remove.
- * security.h (well_known_cygwin_sid): Drop declaration.
-
- * sec_acl.cc (CYG_ACE_ISBITS_TO_WIN): Fix typo.
- (get_posix_access): Rename index variable from i to idx. Define only
- once at top level.
-
- * security.cc (add_access_allowed_ace): Drop unused parameter "offset".
- Accommodate throughout.
- (add_access_denied_ace): Ditto.
- * sec_acl.cc: Accommodate above change throughout.
- * security.h (add_access_allowed_ace): Adjust prototype to above change.
- (add_access_denied_ace): Ditto.
-
- * sec_acl.cc (get_posix_access): Handle multiple ACEs for the
- owner and primary group of the file. Handle the default primary
- group ACE as DEF_GROUP_OBJ entry if the directory has the S_ISGID bit
- set. Add comments. Minor code rearrangements.
-
- Preliminary read side implementation of new permission handling.
- * acl.h (MAX_ACL_ENTRIES): Raise to 2730. Add comment to explain.
- * sec_acl.cc: Add leading comment to explain new ACL style.
- Add definitions and macros to use for bits in new Cygwin ACL.
- (DENY_RWX): New mask value for all temporary deny bits.
- (getace): Add bool parameter to decide when leaving all bits intact,
- rather than filtering them per the already set bits.
- (get_posix_access): New function, taking over functionality to read
- POSIX ACL from SECURITY_DESCRIPTOR.
- (getacl): Just call get_posix_access.
- * sec_helper.cc (well_known_cygwin_sid): Define.
- * security.cc (get_attribute_from_acl): Remove.
- (get_info_from_sd): Remove.
- (get_reg_sd): Call get_posix_access instead of get_info_from_sd.
- (get_file_attribute): Ditto.
- (get_object_attribute): Ditto.
- * security.h (well_known_cygwin_sid): Declare.
- (get_posix_access): Add prototype.
-
- * Throughout, use simpler ACE macros from Windows' accctrl.h.
-
-2015-11-18 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cygwin/version.h (CYGWIN_VERSION_DLL_MAJOR): Bump to 2004.
- (CYGWIN_VERSION_API_MINOR): Reset to 0.
-
-2015-11-18 Corinna Vinschen <corinna@vinschen.de>
-
- * collate.h (__collate_load_error): Convert to extern declaration.
- * globals.cc (__collate_load_error): Define and initialize here.
- * libc/fnmatch.c: Update to latest from FreeBSD.
-
-2015-11-18 Corinna Vinschen <corinna@vinschen.de>
-
- * path.cc (symlink_native): Don't generate native symlink targeting
- Cygwin special file. Inform the caller.
- (symlink_worker): Don;t bail out in WSYM_nativestrict case if the
- target is a Cygwin special file.
-
-2015-11-18 Corinna Vinschen <corinna@vinschen.de>
-
- * lc_msg.h: Regenerate.
-
-2015-11-17 Yaakov Selkowitz <yselkowi@redhat.com>
-
- * common.din (rpmatch): Export.
- * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
-
-2015-11-12 Corinna Vinschen <corinna@vinschen.de>
-
- * flock.cc (lockf_t::create_lock_obj): Correctly recreate lock object
- attributes anew in each loop.
-
-2015-11-12 Corinna Vinschen <corinna@vinschen.de>
-
- * init.cc (munge_threadfunc): Don't call NtQueryInformationThread with
- ThreadQuerySetWin32StartAddress info class on XP 64 and Server 2003 64.
- It crashes.
-
-2015-11-09 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 1.
-
-2015-11-05 Corinna Vinschen <corinna@vinschen.de>
-
- * mount.cc (fs_info::update): Fake a serial number on filesystems not
- providing one.
-
-2015-11-05 Corinna Vinschen <corinna@vinschen.de>
-
- * fcntl.cc (fcntl64): Don't lock fd table when performing locking.
- * flock.cc (flock): Ditto.
- (lockf): Ditto.
-
-2015-11-05 Corinna Vinschen <corinna@vinschen.de>
-
- * sigproc.cc (pending_signals::clear): Yet another fix to fix the fix.
- Actually iterate over the list of pending signals even if there's a
- signal which doesn't have to be cleared. Other than that, revert loop
- to it's former self as a while loop.
-
-2015-11-04 Corinna Vinschen <corinna@vinschen.de>
-
- * globals.cc (ro_u_prlfs): Add trailing NUL. Explain why.
- * mount.cc (fs_info::update): Add a comment to explain PrlSF.
- * path.h (path_conv::fs_is_prlfs): Add for symmetry.
-
-2015-11-03 Corinna Vinschen <corinna@vinschen.de>
-
- * sigproc.cc (pending_signals::clear): Fix previous fix resulting in
- yet another endless loop.
-
-2015-11-02 Corinna Vinschen <corinna@vinschen.de>
-
- * include/netinet/ip.h (MAX_IPOPTLEN): Define.
-
-2015-11-02 Corinna Vinschen <corinna@vinschen.de>
-
- * sigproc.cc (class pending_signals): Drop sigproc_init friendship.
- (pending_signals::clear): Fix implementation to avoid subsequent
- endless loop in wait_sig. Improve comment.
-
-2015-11-02 Corinna Vinschen <corinna@vinschen.de>
-
- * mount.h (enum fs_info_type): Add prlfs (Parallels Desktop FS).
- (class fs_info): Add has_broken_fnoi flag. Implement prlfs FS flag.
- * mount.cc (fs_info::update): Handle PrlFS. Fill new has_broken_fnoi
- flag with life.
- (fs_names): Add prlfs.
- * globals.cc (ro_u_prlfs): Define.
- * path.h (path_conv::has_broken_fnoi): New method.
- * path.cc (symlink_info::check): Call file_get_fnoi utilizing new
- has_broken_fnoi filesystem flag.
- * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Ditto.
-
-2015-10-30 Corinna Vinschen <corinna@vinschen.de>
-
- * nlsfuncs.cc (__get_lcid_from_locale): Handle LocaleNameToLCID
- returning LOCALE_CUSTOM_UNSPECIFIED instead of failing in case of
- an unsupported locale on Windows 10.
-
-2015-10-30 Corinna Vinschen <corinna@vinschen.de>
-
- * exceptions.cc (sigpacket::process): Avoid potentially double unlocking
- the TLS mutex.
-
-2015-10-30 Corinna Vinschen <corinna@vinschen.d>
-
- * signal.cc (sigwait): Fix return value to reflect errno in case of
- error according to POSIX. Never return EINTR.
- * thread.cc (pthread_kill): Return errno if sig_send failed.
-
-2015-10-29 Qian Hong <qhong@codeweavers.com>
-
- * init.cc (munge_threadfunc): Check that we're actually replacing
- the correct original function address on the stack.
- * ntdll.h (enum _THREADINFOCLASS): Add ThreadQuerySetWin32StartAddress.
-
-2015-08-21 Jon Turney <jon.turney@dronecode.org.uk>
-
- * cygwin-cxx.h: Remove execute permissions.
- * fenv.cc: Ditto.
- * how-startup-shutdown-works.txt: Ditto.
- * include/arpa/nameser.h: Ditto.
- * include/arpa/nameser_compat.h: Ditto.
- * include/fenv.h: Ditto.
- * include/resolv.h: Ditto.
- * libstdcxx_wrapper.cc: Ditto.
-
-2015-10-23 Corinna Vinschen <corinna@vinschen.de>
-
- * cygtls.cc (_cygtls::remove): Call remove_pending_sigs.
- * cygtls.h (_cygtls::remove_pending_sigs): Declare.
- * sigproc.cc (pending_signals::clear): Define new method taking a
- _cygtls pointer argument. Drop pending signals for that thread.
- (_cygtls::remove_pending_sigs): Call pending_signals::clear for this
- thread.
-
-2015-10-22 Corinna Vinschen <corinna@vinschen.de>
-
- * common.din (aligned_alloc): Export.
- (at_quick_exit): Export.
- (quick_exit): Export.
-
-2015-10-22 Corinna Vinschen <corinna@vinschen.de>
-
- * sec_helper.cc (cygsid::get_sid): Don't reject SIDs with missing
- subauthorities.
-
-2015-10-22 Corinna Vinschen <corinna@vinschen.de>
-
- * strfuncs.cc (sys_cp_wcstombs): Always return number of multibytes
- without trailing NUL as the documentation implies. Throughout Cygwin,
- fix usage to align to this pattern.
- * fhandler_process.cc (format_process_winexename): Drop trailing NUL
- and LF from output.
-
-2015-10-21 Corinna Vinschen <corinna@vinschen.de>
-
- * thread.cc (pthread_getattr_np): Fix memory leak, remove usage of
- malloc for small local buffer.
-
-2015-10-21 Corinna Vinschen <corinna@vinschen.de>
-
- * path.cc (symlink_info::check_reparse_point): Don't generate an EIO
- error if NtFsControlFile returns STATUS_NOT_A_REPARSE_POINT.
-
-2015-09-23 Evgeny Grin <k2k@yandex.ru>
-
- * fhandler_socket.cc (fhandler_socket::wait_for_events): Fix compiler
- warning in -O3 case.
- (fhandler_socket::connect): Ditto.
- * regex/regcomp.c (singleton): Ditto.
-
-2015-09-08 Corinna Vinschen <corinna@vinschen.de>
-
- * flock.cc (lockf_t::create_lock_obj_attr): Add buffer parameter.
- Call _everyone_sd with buffer argument from caller rather than
- everyone_sd with locally allocated stack buffer.
- (lockf_t::create_lock_obj): Call create_lock_obj_attr only once
- outside the loop and with additional buffer argument.
- (lockf_t::open_lock_obj): Call create_lock_obj_attr with additional
- buffer argument.
-
-2015-08-29 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_proc.cc (format_proc_cpuinfo): Fetch cache information
- from new cache functions in sysconf.cc, get_cpu_cache_intel and
- get_cpu_cache_amd.
- * sysconf.cc (__nt_query_system): New local helper.
- (get_nproc_values): Utilize __nt_query_system on pre-Windows 7 systems.
- Use GetLogicalProcessorInformationEx otherwise to handle more than
- 64 CPUs. Only handle _SC_NPROCESSORS_CONF and _SC_NPROCESSORS_ONLN.
- (get_phys_pages): New helper to handle _SC_PHYS_PAGES.
- (cpuid2_cache_descriptor): New array to map Intel CPUID 2 descriptor
- values to cache type, cache size, associativity and linesize.
- (cpuid2_cache_desc_compar): Comparision function for bsearch over
- cpuid2_cache_descriptor.
- (get_cpu_cache_intel_cpuid2): New function to fetch cache info from
- Intel CPUID 2.
- (get_cpu_cache_intel_cpuid4): Ditto from Intel CPUID 4.
- (get_cpu_cache_intel): New function as CPU-specific entry point.
- (assoc): New array to map associativity values from AMD CPUID
- 0x80000006.
- (get_cpu_cache_amd): New function to fetch cache info from AMD CPUIDs
- 0x80000005 and 0x80000006.
- (get_cpu_cache): New function to fetch cache info.
- (sca): Call get_phys_pages if _SC_PHYS_PAGES is requested. Call
- get_cpu_cache for new _SC_* cache requests.
- (SC_MAX): Set to _SC_LEVEL4_CACHE_LINESIZE.
- (get_phys_pages(void)): Call get_phys_pages(int).
- * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
-
-2015-08-27 Corinna Vinschen <corinna@vinschen.de>
-
- * autoload.cc (DiscardVirtualMemory): Import.
- (PrefetchVirtualMemory): Import.
- * mmap.cc (posix_madvise): Actually implement POSIX_MADV_WILLNEED
- utilizing PrefetchVirtualMemory and POSIX_MADV_DONTNEED utilizing
- DiscardVirtualMemory on systems supporting them.
- * wincap.h (wincaps::has_broken_prefetchvm): New element.
- * wincap.cc: Implement above element throughout.
- (wincapc::init): Make sure has_broken_prefetchvm is only true on
- W10 under WOW64.
- * include/cygwin/version.h (CYGWIN_VERSION_DLL_MAJOR): Bump to 2003.
- (CYGWIN_VERSION_API_MINOR): Reset to 0.
-
-2015-08-26 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_proc.cc (format_proc_cpuinfo): Only fetch group relations,
- we don't need anything else.
-
-2015-08-25 Corinna Vinschen <corinna@vinschen.de>
-
- * winsup.h (_WIN32_WINNT): Set to 0x0a00 for Windows 10.
- (WINVER): Ditto. Remove outdated comment.
-
-2015-08-25 Corinna Vinschen <corinna@vinschen.de>
-
- * autoload.cc (std_dll_init): Revert using full paths to system DLLs.
-
-2015-08-25 Corinna Vinschen <corinna@vinschen.de>
-
- * autoload.cc (noload): i686 only: Save and restore $edx when calling
- SetLastError to avoid clobbering return address stating with Windows 7.
-
-2015-08-25 Corinna Vinschen <corinna@vinschen.de>
-
- * mmap.cc: Fix a few comments.
-
-2015-08-24 Corinna Vinschen <corinna@vinschen.de>
-
- * ntdll.h (PROCESSINFOCLASS): Define ProcessDebugFlags.
- * sigproc.cc (child_info::child_info): Only propagate _CI_STRACED to
- child if strace is actually tracing child processes.
-
-2015-08-24 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 2.
-
-2015-08-18 Corinna Vinschen <corinna@vinschen.de>
-
- * netdb.cc (parse_services_line): Convert port number to network byte
- order.
-
-2015-08-18 Corinna Vinschen <corinna@vinschen.de>
-
- * exceptions.cc: Drop including ucontext.h.
-
-2015-08-17 Corinna Vinschen <corinna@vinschen.de>
-
- * grp.cc (internal_getgrfull): Drop asking caches. Explain why.
- (internal_getgroups): In case we're not utilizing the Windows account
- DBs, don't call LsaLookupSids but iterate over the group SIDs in the
- token and call internal_getgrsid for each of them. Explain why.
-
-2015-08-17 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): Rearrange
- to fall back to myself uid/gid in case we don't utilize Windows
- account DBs, just as prior to 1.7.34.
- * sec_helper.cc (cygpsid::get_id): Disable Samba user/group mapping per
- RFC2307 if we're not utilizing Windows account DBs.
- * security.cc (convert_samba_sd): Revert previous patch.
-
-2015-08-17 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_proc.cc (format_proc_cpuinfo): Handle AMDs providing
- extended topology info in CPUID leaf 0x8000001e. Fix handling of
- AMD CPUs providing extended legacy core info in CPUID leaf 0x80000008.
-
-2015-08-17 Orgad Shaneh <orgads@gmail.com>
-
- * mkglobals_h: Handle CRLF earlier.
-
-2015-08-17 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_proc.cc (format_proc_cpuinfo): Print cpb and eff_freq_ro
- power management flags.
-
-2015-08-15 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.cc (fhandler_base_overlapped::raw_write): When performing
- nonblocking I/O, copy user space data into own buffer. Add longish
- comment to explain why.
- * fhandler.h (fhandler_base_overlapped::atomic_write_buf): New member.
- (fhandler_base_overlapped::fhandler_base_overlapped): Initialize
- atomic_write_buf.
- (fhandler_base_overlapped::fhandler_base_overlapped): New destructor,
- free'ing atomic_write_buf.
- (fhandler_base_overlapped::copyto): Set atomic_write_buf to NULL in
- copied fhandler.
-
-2015-08-14 Corinna Vinschen <corinna@vinschen.de>
-
- * security.cc (convert_samba_sd): Fix copy/paste error in previous
- patch.
-
-2015-08-14 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): Only try
- to map user and group info per RFC2307 if account info is fetched
- from Windows account DB.
- * security.cc (convert_samba_sd): Ditto.
-
-2015-08-14 Corinna Vinschen <corinna@vinschen.de>
-
- * security,cc (get_attribute_from_acl): Merge all group perms into
- user perms if user is member of group.
-
-2015-08-13 Corinna Vinschen <corinna@vinschen.de>
-
- * autoload.cc (GetLogicalProcessorInformationEx): Import.
- (SetThreadGroupAffinity): Import.
- * fhandler_proc.cc (add_size): New macro.
- (get_msb): New inline function.
- (mask_bits): Ditto.
- (format_proc_cpuinfo): Drop handling of old CPUs. Check if we're
- running on a OS version supporting porcessor groups. If so, use
- SetThreadGroupAffinity to set thread affinity. Improve cache info
- to include 3rd level cache on Intel CPUs. Improve multi core info.
- * wincap.h (wincaps::has_processor_groups): New element.
- * wincap.cc: Implement above element throughout.
-
-2015-08-10 Corinna Vinschen <corinna@vinschen.de>
-
- * miscfuncs.cc: Fix comment preceeding x86_64 memset and friends.
-
-2015-08-10 Corinna Vinschen <corinna@vinschen.de>
-
- * uinfo.cc (cygheap_user::ontherange): Revert previous patch.
-
-2015-08-03 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 1.
-
-2015-07-29 Corinna Vinschen <corinna@vinschen.de>
-
- * miscfuncs.cc (memset): x86_64 only: Implement in assembler.
- (memmove,memcpy): x86_64 only: Ditto.
- (wmemmove,wmemcpy): x86_64 only: Ditto.
-
-2015-07-29 Corinna Vinschen <corinna@vinschen.de>
-
- * cygtls.h: Include cygtls_padsize.h and define CYGTLS_PADSIZE there.
- * cygtls_padsize.h: New file. Define CYGTLS_PADSIZE.
- * environ.cc (parse_options): Fix NULL pointer access.
- * init.cc (threadfunc_fe): Do not force stack align on x86_64.
-
-2015-07-23 Corinna Vinschen <corinna@vinschen.de>
-
- * exceptions.cc (__cont_link_context): x86_64: align stack and reserve
- shadow space for subsequent function calls, otherwise suffer potential
- buffer overflow.
-
-2015-07-23 Corinna Vinschen <corinna@vinschen.de>
-
- * uinfo.cc (cygheap_user::ontherange): Ignore $HOME if it's not
- starting with a slash (aka, absolute POSIX Path).
-
-2015-07-21 Corinna Vinschen <corinna@vinschen.de>
-
- * common.din (siglongjmp): Export.
- (sigsetjmp): Export.
- * gendef: Change formatting of some comments.
- (sigsetjmp): Implement.
- (siglongjmp): Implement.
- (__setjmpex): x86_64 only: Drop entry point.
- (setjmp): x86_64 only: Store tls stackptr in Frame now, store MXCSR
- and FPUCW registers in Spare, as MSVCRT does.
- (longjmp): x86_64 only: Restore tls stackptr from Frame now, restore
- MXCSR and FPUCW registers from Spare.
- * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
-
-2015-07-19 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cygwin/signal.h (MINSIGSTKSZ): Define as 8K, unconditionally.
- (SIGSTKSZ): Define as 32K, unconditionally.
-
-2015-07-19 Corinna Vinschen <corinna@vinschen.de>
-
- * dcrt0.cc (initial_env): Reduce size of local path buffers to
- PATH_MAX. Allocate debugger_command from process heap.
- (init_windows_system_directory): Very early initialize new global
- variable global_progname.
- * dll_init.cc (dll_list::alloc): Make path buffer static. Explain why.
- (dll_list::populate_deps): Use tmp_pathbuf for local path buffer.
- * exceptions.cc (debugger_command): Convert to PWCHAR.
- (error_start_init): Allocate debugger_command and fill with wide char
- strings. Only allocate if NULL.
- (try_to_debug): Just check if debugger_command is a NULL pointer to
- return. Drop conversion from char to WCHAR and drop local variable
- dbg_cmd.
- * globals.cc (global_progname): New global variable to store Windows
- application path.
- * pinfo.cc (pinfo_basic::pinfo_basic): Just copy progname over from
- global_progname.
- (pinfo::status_exit): Let path_conv create the POSIX path to
- avoid local buffer.
- * pseudo_reloc.cc (__report_error): Utilize global_progname, drop local
- buffer.
- * smallprint.cc (__small_vsprintf): Just utilize global_progname for
- %P format specifier.
- (__small_vswprintf): Ditto.
- * strace.cc (PROTECT): Change to reflect x being a pointer. Reformat.
- (CHECK): Ditto. Reformat.
- (strace::activate): Utilize global_progname, drop local buffer.
- Fix formatting.
- (strace::vsprntf): Reduce size of local progname buffer to NAME_MAX.
- Copy and, if necessary, convert only the last path component to
- progname.
- (strace_buf_guard): New muto.
- (buf): New static pointer.
- (strace::vprntf): Use buf under strace_buf_guard lock only. Allocate
- buffer space for buf on Windows heap.
- * wow64.cc (wow64_respawn_process): Utilize global_progname, drop
- local path buffer.
-
-2015-07-18 Corinna Vinschen <corinna@vinschen.de>
-
- * gendef: Remove unused 64 bit versions of __sjfault and __ljfault.
-
-2015-07-18 Corinna Vinschen <corinna@vinschen.de>
-
- * exceptions.cc (makecontext): Rearrange order of initialization and
- document at great length.
-
-2015-07-17 Corinna Vinschen <corinna@vinschen.de>
-
- * exceptions.cc (__unwind_single_frame): Define empty macro on i686.
- (_cygtls::call_signal_handler): Try to make sure signal context makes
- sense in case we're generating context here. Add comment to explain.
-
-2015-07-17 Corinna Vinschen <corinna@vinschen.de>
-
- * exceptions.cc (getcontext/x86_64): Drop comment on RtlCaptureContext.
- (swapcontext/x86_64): Fix comment yet again.
- (getcontext/i686): Move comment from x86_64 getcontext, slightly
- rearranged, to preceeding comment.
-
-2015-07-17 Corinna Vinschen <corinna@vinschen.de>
-
- * exceptions.cc (__unwind_single_frame): Move up in file to be
- accessible from other places. Move comment to getcontext.
- (stack_info::walk): Call __unwind_single_frame in 64 bit case. Fix
- preceeding comment.
- (myfault_altstack_handler): Call __unwind_single_frame.
- (getcontext): Give comment from __unwind_single_frame a new home.
- (swapcontext): Fix comment.
-
-2015-07-17 Corinna Vinschen <corinna@vinschen.de>
-
- * common.din (getcontext): Export.
- (makecontext): Export.
- (setcontext): Export.
- (swapcontext): Export.
- * exceptions.cc (__unwind_single_frame): New static functions, 64 bit
- only.
- (setcontext): New function.
- (getcontext): New function.
- (swapcontext): New function.
- (__cont_link_context): New function.
- (makecontext): New function.
- * include/cygwin/version.h (CYGWIN_VERSION_DLL_MAJOR): Bump to 2002.
- (CYGWIN_VERSION_API_MINOR): Bump.
- * include/ucontext.h (getcontext): Add prototype.
- (setcontext): Ditto.
- (swapcontext): Ditto.
- (makecontext): Ditto.
- * ntdll.h (NtContinue): Ditto.
-
-2015-07-17 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Document the
- fact that we forgot to bump for sigaltstack and sethostname.
-
-2015-07-13 Corinna Vinschen <corinna@vinschen.de>
-
- * exceptions.cc (exception::handle): Reenable code only disabled for
- debug purposes.
-
-2015-07-07 Corinna Vinschen <corinna@vinschen.de>
-
- x86_64 only:
- * cygtls.cc (san::leave): Restore _my_tls.andreas.
- * cygtls.h (class san): Add _clemente as in 32 bit case. Add ret and
- frame members.
- (san::san): Handle _my_tls.andreas as on 32 bit. Take parameter and
- write it to new member ret. Store current stack pointer in frame.
- (san::~san): New destructor to restore _my_tls.andreas.
- (__try): Use __l_except address as parameter to san::san.
- * dcrt0.cc (dll_crt0_0): Add myfault_altstack_handler as vectored
- continuation handler.
- * exception.h (myfault_altstack_handler): Declare.
- * exceptions.cc (myfault_altstack_handler): New function. Explain what
- it's good for.
-
-2015-07-07 Corinna Vinschen <corinna@vinschen.de>
-
- * child_info.h (CURR_CHILD_INFO_MAGIC): Update.
- (child_info_fork::alloc_stack_hard_way): Drop declaration.
- * dcrt0.cc (child_info_fork::alloc_stack_hard_way): Fold into
- child_info_fork::alloc_stack.
- (getstack): Remove.
- (child_info_fork::alloc_stack): Simplify check for application-provided
- stack in "hard way" code. Don't call getstack for each page, just
- reallocate stack immediately as required.
-
-2015-07-07 Corinna Vinschen <corinna@vinschen.de>
-
- * fork.cc (frok::parent): Simplify code propagating stack setup to
- child process. Tweak comments.
-
-2015-07-06 Yaakov Selkowitz <yselkowi@redhat.com>
-
- * path.cc: Rework basename redefinition handling. Explain why.
-
-2015-07-05 Corinna Vinschen <corinna@vinschen.de>
-
- * dcrt0.cc (CYGWIN_GUARD): Remove.
- (child_info_fork::alloc_stack_hard_way): Align stack commit to changes
- of thread stack setup in CygwinCreateThread.
-
-2015-07-05 Corinna Vinschen <corinna@vinschen.de>
-
- * miscfuncs.cc (struct pthread_wrapper_arg): Add member guardsize.
- (pthread_wrapper): Set thread stack guarantee according to guardsize.
- Tweak assembler code so that $rax/$eax is not required by GCC to
- prepare the wrapper_arg value.
- (CygwinCreateThread): Fix deadzone handling. Drop setting a "POSIX"
- guardpage (aka page w/ PAGE_NOACCESS). Always use Windows guard
- pages instead. On post-XP systems (providing SetThreadStackGuarantee)
- always set up stack Windows like with reserved/commited areas and
- movable guard pages. Only on XP set up stack fully commited if the
- guardpage size is not the default system guardpage size.
- Fill out pthread_wrapper_arg::guardsize. Improve comments.
- * resource.cc: Implement RSTACK_LIMIT Linux-like.
- (DEFAULT_STACKSIZE): New macro.
- (DEFAULT_STACKGUARD): Ditto.
- (rlimit_stack_guard): New muto.
- (rlimit_stack): New global variable holding current RSTACK_LIMIT values.
- (__set_rlimit_stack): Set rlimit_stack under lock.
- (__get_rlimit_stack): Initialize rlimit_stack from executable header
- and return rlimit_stack values under lock.
- (get_rlimit_stack): Filtering function to return useful default
- stacksize from rlimit_stack.rlim_cur value.
- (getrlimit): Call __get_rlimit_stack in RLIMIT_STACK case.
- (setrlimit): Call __set_rlimit_stack in RLIMIT_STACK case.
- * thread.cc (pthread::create): Fetch default stacksize calling
- get_rlimit_stack.
- (pthread_attr::pthread_attr): Fetch default guardsize calling
- wincap.def_guard_page_size.
- (pthread_attr_getstacksize): Fetch default stacksize calling
- get_rlimit_stack.
- * thread.h (PTHREAD_DEFAULT_STACKSIZE): Remove.
- (PTHREAD_DEFAULT_GUARDSIZE): Remove.
- (get_rlimit_stack): Declare.
-
-2015-07-05 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_process.cc (heap_info::heap_info): Disable fetching heap info
- on 64 bit XP/2003. Explain why.
- * wincap.h (wincaps::has_broken_rtl_query_process_debug_information):
- New element.
- * wincap.cc: Implement above element throughout.
-
-2015-07-04 Corinna Vinschen <corinna@vinschen.de>
-
- * autoload.cc (SetThreadStackGuarantee): Import.
- * cygtls.h (struct _cygtls): Replace thread_context with a ucontext_t
- called context.
- * exceptions.cc (exception::handle): Exit from process via signal_exit
- in case sig_send returns from handling a stack overflow SIGSEGV.
- Explain why.
- (dumpstack_overflow_wrapper): Thread wrapper to create a stackdump
- from another thread.
- (signal_exit): Fix argument list to reflect three-arg signal handler.
- In case we have to create a stackdump for a stack overflow condition,
- do so from a separate thread. Explain why.
- (sigpacket::process): Don't run signal_exit on alternate stack.
- (altstack_wrapper): Wrapper function to do stack correction when
- calling the signal handler on an alternate stack to handle a stack
- overflow. Make sure to have lots of comments.
- (_cygtls::call_signal_handler): Drop local context variable to reduce
- stack pressure. Use this->context instead. Change inline assembler
- to call altstack_wrapper.
- (_cygtls::signal_debugger): Accommodate aforementioned change to
- struct _cygtls.
- * tlsoffset.h: Regenerate.
- * tlsoffset64.h: Regenerate.
- * wincap.h (wincaps::def_guard_pages): New element.
- (wincaps::has_set_thread_stack_guarantee): Ditto.
- * wincap.cc: Implement above elements throughout.
-
-2015-07-01 Corinna Vinschen <corinna@vinschen.de>
-
- * fork.cc (frok::parent): Set stacktop value based on requested stack
- pointer value in child. Explain why.
-
-2015-06-30 Corinna Vinschen <corinna@vinschen.de>
-
- * signal.cc (sigaltstack): Add comment.
-
-2015-06-27 Corinna Vinschen <corinna@vinschen.de>
-
- * exceptions.cc (_cygtls::call_signal_handler): Drop manipulating
- thread's ss_flags here. It's not safe against longjmp.
- * signal.cc (sigaltstack): Check if we're running on the alternate
- stack and set ss_flags returned in oss to SS_ONSTACK.
-
-2015-06-26 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cygwin/signal.h: Revert to define MINSIGSTKSZ and SIGSTKSZ
- here with bigger values to allow _cygtls to reside on signal stack,
- should it turn out to be required at one point.
-
-2015-06-26 Corinna Vinschen <corinna@vinschen.de>
-
- * resource.cc (getrlimit): Fix values returned by RLIMIT_STACK.
- Explain why this had to be changed.
-
-2015-06-23 Ken Brown <kbrown@cornell.edu>
-
- * include/cygwin/signal.h (SIGEV_*): Add macros.
-
-2015-06-22 Corinna Vinschen <corinna@vinschen.de>
-
- * exceptions.cc (_cygtls::call_signal_handler): Drop pushing a register
- on the original stack, it confuses GCC. Rearrange the assembler code
- so that $rax/$eax is not used by GCC to prepare an argument value.
- Use $rax/$eax without saving. Drop clearing $rbp/$epb.
-
-2015-06-21 Corinna Vinschen <corinna@vinschen.de>
-
- * exceptions.cc (_cygtls::call_signal_handler): Drop subtracting 16
- bytes from the alternate stack, it's not necessary. Safe all clobbered
- registers. Safe one on the orignal stack, the others on the alternate
- stack on both platforms.
-
-2015-06-20 Corinna Vinschen <corinna@vinschen.de>
-
- * exceptions.cc (_cygtls::call_signal_handler): Implement alternate
- signal stack handling.
- * signal.cc (sigaltstack): Add fault handler.
- * include/cygwin/signal.h: Remove definitions of MINSIGSTKSZ
- and SIGSTKSZ here.
-
-2015-06-19 Corinna Vinschen <corinna@vinschen.de>
-
- * common.din (sigaltstack): Export.
- * cygtls.cc (_cygtls::init_thread): Initialize altstack.
- * cygtls.h (__tlsstack_t): Rename from __stack_t to distinguish
- more clearly from stack_t. Accommodate throughout.
- (_cygtls): Add altstack member.
- * exceptions.cc (exception::handle): Set SIGSEGV handler to SIG_DFL
- if we encounter a stack overflow, and no alternate stack has been
- defined.
- * include/cygwin/signal.h (MINSIGSTKSZ): Define
- (SIGSTKSZ): Define.
- (SA_ONSTACK): Define.
- * signal.cc (sigaltstack): New function.
- * tlsoffset.h: Regenerate.
- * tlsoffset64.h: Ditto.
-
-2015-06-19 Corinna Vinschen <corinna@vinschen.de>
-
- * exceptions.cc: Minor formatting fixes.
-
-2015-06-18 Corinna Vinschen <corinna@vinschen.de>
-
- * Makefile.in (install-man): Exclude release subdir from search paths.
-
-2015-06-17 Corinna Vinschen <corinna@vinschen.de>
-
- * net.cc (sethostname): New function.
- * common.din (sethostname): Export
- * include/cygwin/version.h (CYGWIN_VERSION_DLL_MAJOR): Bump to 2001.
- (CYGWIN_VERSION_DLL_MINOR): Set to 0.
-
-2015-06-15 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_socket.cc (LOCK_EVENTS): Don't enter critical section with
- invalid mutex handle since then socket has been closed.
- (UNLOCK_EVENTS): Close critical section.
- (fhandler_socket::evaluate_events): Handle calling connect on shutdown
- socket.
- (fhandler_socket::wait_for_events): Try for pthread_testcancel in case
- of WAIT_FAILED. Try to come up with a better errno in case we waited
- on an invalid handle.
- (fhandler_socket::release_events): Change wsock_mtx and wsock_evt to
- NULL under lock to avoid accessing invalid handle.
-
-2015-06-15 Corinna Vinschen <corinna@vinschen.de>
-
- * net.cc (errmap): Handle more Winsock error codes.
-
-2015-06-15 Corinna Vinschen <corinna@vinschen.de>
-
- * exceptions.cc (_cygtls::call_signal_handler): Disable enforcing
- SA_RESTART in non-main threads to allow returning with EINTR from
- system calls.
-
-2015-06-11 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 5.
-
-2015-06-08 Corinna Vinschen <corinna@vinschen.de>
-
- * pinfo.cc (_pinfo::cwd): Initialize s to avoid comiler warning.
- (_pinfo::cmdline): Ditto.
-
-2015-06-08 Corinna Vinschen <corinna@vinschen.de>
-
- * pinfo.cc (_pinfo::root): Fake default root for native processes.
- (open_commune_proc_parms): New helper function to access process
- parameter block.
- (_pinfo::cwd): Fetch missing cwd for native processes from processes
- parameter block.
- (_pinfo::cmdline): Ditto for command line.
-
-2015-06-08 Corinna Vinschen <corinna@vinschen.de>
-
- * pinfo.cc (_pinfo::commune_request): Don't try to send commune
- requests to non-Cygwin processes.
-
-2015-06-08 Takashi Yano <takashi.yano@nifty.ne.jp>
-
- * fhandler_tty.cc (fhandler_pty_slave::write): Move causing of SIGHUP
- into fhandler_pty_master::close().
- (fhandler_pty_slave::read): Ditto.
- (fhandler_pty_master::close): Ditto.
-
-2015-06-08 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 4.
-
-2015-06-02 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 3.
-
-2015-05-28 Takashi Yano <takashi.yano@nifty.ne.jp>
- Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_tty.cc (fhandler_pty_common::close): Don't close output_mutex
- here. Move into callers.
- (fhandler_pty_master::close): Use NtQueryObject instead of PeekNamedPipe
- to detect closing the last master handle.
-
-2015-05-27 Takashi Yano <takashi.yano@nifty.ne.jp>
-
- * net.cc: Define _NETIOAPI_H_ to accomodate newer w32api.
-
-2015-05-03 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 2.
-
-2015-04-30 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 1.
-
-2015-04-30 Corinna Vinschen <corinna@vinschen.de>
-
- * security.cc (convert_samba_sd): Fix accidental dropping of all
- non-Unix User, non-Unix Group accounts.
-
-2015-04-27 Corinna Vinschen <corinna@vinschen.de>
-
- * include/asm/types.h: Add __s64 and __u64 types.
-
-2015-04-23 Corinna Vinschen <corinna@vinschen.de>
-
- * path.cc (path_conv::set_nt_native_path): New function.
- * path.h (path_conv::set_nt_native_path): Add prototype.
- * syscall.cc (try_to_bin): Handle moving files to the recycler
- accessed via a local virtual drive (subst). Fix a problem renaming
- the file to the unique replacement name on Samba. Align comment.
-
-2015-04-22 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_tty.cc (fhandler_pty_slave::fch_close_handles): Don't close
- handles not opened via fhandler_pty_slave::fch_open_handles.
-
-2015-04-22 Takashi Yano <takashi.yano@nifty.ne.jp>
-
- * fhandler.h (class fhandler_base): Add virtual function
- get_io_handle_cyg() to get handle from which OPOST-processed output is
- read on PTY master.
- (class fhandler_pty_slave): Add variable output_handle_cyg to store a
- handle to which OPOST-processed output is written. Add two functions,
- i.e., set_output_handle_cyg() and get_output_handle_cyg(), regarding
- variable output_handle_cyg. Now, output_handle is used only by native
- windows program. The data before OPOST-processing is written to
- output_handle and OPOST-processing is applied in the master-side. For a
- cygwin process, OPOST-processing is applied in the slave-side, and the
- data after OPOST-processing is written to output_handle_cyg.
- (class fhandler_pty_master): Add two variables, i.e., io_handle_cyg and
- to_master_cyg, to store handles of a pipe through which OPOST-processed
- output passes. Add pty_master_fwd_thread and function
- pty_master_fwd_thread() for a thread which applies OPOST-processing
- and forwards data from io_handle to to_master_cyg. Add function
- get_io_handle_cyg() regarding variable io_handle_cyg. Now, the pipe
- between io_handle and to_master are used only by native windows program
- for applying OPOST-processing in the master-side. For a cygwin process,
- the pipe between io_handle_cyg and to_master_cyg is used for passing
- through the data which is applied OPOST-processing in the slave-side.
- * fhandler_tty.cc (struct pipe_reply): Add member to_master_cyg.
- (fhandler_pty_master::process_slave_output): Read slave output from
- io_handle_cyg rather than io_handle.
- (fhandler_pty_slave::fhandler_pty_salve): Initialize output_handle_cyg.
- (fhandler_pty_slave::open): Set output_handle_cyg by duplicating handle
- to_master_cyg on PTY master.
- (fhandler_pty_slave::close): Close handle output_handle_cyg.
- (fhandler_pty_slave::write): Write data to output_handle_cyg rather
- than output_handle.
- (fhandler_pty_slave::fch_close_handles): Close handle output_handle_cyg.
- (fhandler_pty_master::fhandler_pty_master): Initialize io_handle_cyg,
- to_master_cyg and master_fwd_thread.
- (fhandler_pty_master::cleanup): Clean up to_master_cyg as well.
- (fhandler_pty_master::close): Print to_master_cyg as well in debug
- message. Terminate master forwarding thread. Close handles
- to_master_cyg and io_handle_cyg.
- (fhandler_pty_master::ioctl): Use io_handle_cyg rather than to_master.
- (fhandler_pty_master::pty_master_thread): Add code for duplicating
- handle to_master_cyg.
- (fhandler_pty_master::pty_master_fwd_thread): New function for a thread
- to forward OPOST-processed data from io_handle to to_master_cyg. This
- thread applies OPOST-processing to the output of native windows program.
- (::pty_master_fwd_thread): Ditto.
- (fhandler_pty_master::setup): Create a new pipe to pass thruegh OPOST-
- processed output. Create new thread to forward data from io_handle to
- to_master_cyg. Set handle to_master_cyg to tty. Print io_handle_cyg as
- well in debug message. Close handles io_handle_cyg and to_master_cyg in
- case of error.
- (fhandler_pty_master::fixup_after_fork): Set handle to_master_cyg to
- tty. Copy handle to_master_cyg from arch->to_master_cyg.
- (fhandler_pty_master::fixup_after_exec): Clean up to_master_cyg.
- * select.cc: Check handle returned by get_io_handle_cyg() rather than
- get_handle().
- * tty.h (class tty): Add variable _to_master_cyg to store a handle to
- which OPOST-processed data is written. Add two functions,
- to_master_cyg() and set_to_master_cyg(), regarding _to_master_cyg.
-
-2015-04-22 Corinna Vinschen <corinna@vinschen.de>
-
- * path.cc (basename): Undefine basename before defining function to
- avoid type collision with prototype in string.h.
-
-2015-04-21 Corinna Vinschen <corinna@vinschen.de>
-
- * include/libgen.h: Remove in favor of newlib version.
-
-2015-04-17 Corinna Vinschen <corinna@vinschen.de>
-
- * uinfo.cc (pwdgrp::fetch_account_from_windows): Always revert SID
- subauth count after checking for known domain.
-
-2015-04-17 Corinna Vinschen <corinna@vinschen.de>
-
- * 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.
-
-2015-04-12 Corinna Vinschen <corinna@vinschen.de>
-
- * shm.cc (shmget): Fetch segment size from server rather than using
- size argument to accommodate existing segments. Add comment to explain
- why.
-
-2015-04-10 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cygwin/version.h (CYGWIN_VERSION_DLL_MAJOR): Bump to 2000.
- (CYGWIN_VERSION_DLL_MINOR): Set to 0.
-
-2015-04-04 Jon TURNEY <jon.turney@dronecode.org.uk>
-
- * exceptions.cc (call_signal_handler): Set mcontext.cr2 to the
- faulting address.
-
-2015-04-02 Jon TURNEY <jon.turney@dronecode.org.uk>
-
- * exceptions.cc (call_signal_handler): Only bother to construct
- the ucontext for signal handlers with SA_SIGINFO set. Set
- mcontext.oldmask.
-
-2015-04-04 Jon TURNEY <jon.turney@dronecode.org.uk>
-
- * exceptions.cc (call_signal_handler): Zero initialize context and set
- context flags, as RlCaptureContext doesn't.
-
-2015-04-09 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_dsp.cc (fhandler_dev_dsp::open): Call open_null.
-
-2015-04-08 Corinna Vinschen <corinna@vinschen.de>
-
- * pwdgrp.h (sidfromuid): New inline function.
- (sidfromgid): Ditto.
- * fhandler_disk_file.cc (fhandler_disk_file::fchown): Use sidfromuid.
- * quotactl.cc (quotactl): Use sidfromuid and sidfromgid.
-
-2015-04-08 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cyggwin/acl.h (struct __acl16): Move from here...
- * sec_acl.cc: ...to here.
-
-2015-04-07 Corinna Vinschen <corinna@vinschen.de>
-
- * tty.h (class tty): Remove unused 32/64 bit interoperability
- considerations.
-
-2015-04-07 Corinna Vinschen <corinna@vinschen.de>
-
- * tty.h (NTTYS): Raise to 128.
- * devices.in: Change pty, ptym, and cons expressions accordingly.
- * devices.cc: Regenerate.
-
-2015-04-04 Jon TURNEY <jon.turney@dronecode.org.uk>
-
- * Makefile.in : Remove setting -fomit-frame-pointer for compiling
- various files, it is already the default. Set
- -fno-omit-frame-pointer for exceptions.cc on x86.
-
-2015-04-03 Takashi Yano <takashi.yano@nifty.ne.jp>
-
- * fhandler_tty.cc (fhandler_pty_slave::read): Change calculation of
- "readlen" not to use "bytes_in_pipe" value directly.
-
-2015-04-02 Jon TURNEY <jon.turney@dronecode.org.uk>
-
- * include/cygwin/signal.h (struct __mcontext): 16-byte align.
- * include/sys/ucontext.h (ucontext_t): Ditto.
-
-2015-04-01 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cygwin/types.h: Include sys/_stdint.h rather than stdint.h.
- * include/stdint.h: Drop in favor of newlib version.
- * include/inttypes.h: Ditto.
-
-2015-04-01 Jon TURNEY <jon.turney@dronecode.org.uk>
-
- * include/sys/ucontext.h : New header.
- * include/ucontext.h : Ditto.
- * exceptions.cc (call_signal_handler): Provide ucontext_t
- parameter to signal handler function.
-
-2015-04-01 Jon TURNEY <jon.turney@dronecode.org.uk>
-
- * external.cc (cygwin_internal): Add operation to retrieve a copy
- of the EXCEPTION_RECORD from a siginfo_t *.
- * include/sys/cygwin.h (cygwin_getinfo_types): Ditto.
- * exception.h (cygwin_exception): Add exception_record accessor.
-
-2015-04-01 Jon TURNEY <jon.turney@dronecode.org.uk>
-
- * include/cygwin/signal.h : Rename struct ucontext to struct
- __mcontext. Fix layout differences from the Win32 API CONTEXT
- type. Remove unused member _internal. Rename member which
- corresponds to ContextFlags. Add cr2 member.
-
-2015-04-01 Corinna Vinschen <corinna@vinschen.de>
-
- * grp.cc (internal_getgroups): Handle negative domain index to avoid
- crashes.
-
-2015-03-31 Renato Silva <br.renatosilva@gmail.com>
-
- * net.cc (cygwin_gethostname): Fix buffer size error handling.
-
-2015-03-31 Corinna Vinschen <corinna@vinschen.de>
-
- * uinfo.cc (pwdgrp::fetch_account_from_windows): Don't allow fully
- qualified Windows account names (domain\user or user@domain).
-
-2015-03-31 Corinna Vinschen <corinna@vinschen.de>
-
- * localtime.cc (tzset_unlocked): Export as _tzset_unlocked.
-
-2015-03-30 Yaakov Selkowitz <yselkowi@redhat.com>
-
- * common.din (__gnu_basename): Export.
- * path.cc (__gnu_basename): New function.
-
-2015-03-30 Corinna Vinschen <corinna@vinschen.de>
-
- * cygheap.h (cygheap_domain_info::add_domain): Add prototype.
- * uinfo.cc (cygheap_domain_info::add_domain): New method.
- (pwdgrp::fetch_account_from_windows): Try to add domain explicitely
- if it was not in the original list of trusted domains and go ahead
- rather than bailing out. Add comment to explain why.
-
-2015-03-30 Corinna Vinschen <corinna@vinschen.de>
-
- * cygtls.h (struct _cygtls): Convert thread_context to type CONTEXT.
- * exceptions.cc (_cygtls::signal_debugger): Use sizeof (CONTEXT) for
- size of CONTEXT copied for GDB's digestion.
- * include/cygwin/signal.h: Add a preliminary comment.
-
-2015-03-25 Corinna Vinschen <corinna@vinschen.de>
-
- * include/sys/termios.h: Add CMIN and CTIME.
- * fhandler_termios.cc (fhandler_termios::tcinit): Use CMIN and CTIME.
-
-2015-03-25 Takashi Yano <takashi.yano@nifty.ne.jp>
-
- * tty.h (class tty_min): Remove variable "write_error" to which any
- errors are not currently set at anywhere.
- (class tty): Add variable "column" for handling ONOCR.
- * tty.cc (tty::init): Add initialization code for variable "column".
- * fhandler.h (class fhandler_pty_master): Remove variable "need_nl"
- which is not necessary any more. "need_nl" was needed by OPOST process
- in fhandler_pty_master::process_slave_output().
- (class fhandler_pty_common): Add function process_opost_output() for
- handling post processing for OPOST in write process.
- * fhandler_tty.cc (fhandler_pty_master::process_slave_output): Count
- TIOCPKT control byte into length to be read in TIOCPKT mode. Move
- post processing for OPOST to write process. Remove code related to
- variable "write_error". Return with EIO error if slave is already
- closed.
- (fhandler_pty_master::fhandler_pty_master): Remove initialization
- code for variable "need_nl".
- (fhandler_pty_common::process_opost_output): Add this function for
- handling of OPOST in write process. Add code to avoid blocking in
- non-blocking mode when output is suspended by ^S.
- (fhandler_pty_slave::write): Call fhandler_pty_common::
- process_opost_output() instead of WriteFile(). Remove code related to
- variable "write_error".
- (fhandler_pty_master::doecho): Call fhandler_pty_common::
- process_opost_output() instead of WriteFile().
- * select.cc (peek_pipe): Remove code related to variable "need_nl".
-
-2015-03-24 Corinna Vinschen <corinna@vinschen.de>
-
- Per glibc BZ #15366:
- * inttypes.h: Drop __STDC_FORMAT_MACROS consideration.
- * stdint.h: Drop __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS
- consideration.
-
-2015-03-23 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cygwin/_types.h: Drop unused file.
-
-2015-03-18 Corinna Vinschen <corinna@vinschen.de>
-
- * grp.cc (pwdgrp::parse_group): Call cygsid::getfromgr_passwd.
- * passwd.cc (pwdgrp::parse_passwd): Call cygsid::getfrompw_gecos.
- * pwdgrp.h (cygsid::getfrompw): Implement as inline method here,
- accessing pg_pwd's sid member directly.
- (cygsid::getfromgr): Implement as inline method here, accessing
- pg_grp's sid member directly.
- * sec_auth.cc (extract_nt_dom_user): Call cygsid::getfrompw_gecos.
- Explain why.
- * sec_helper.cc (cygsid::getfrompw): Drop implementation.
- (cygsid::getfromgr): Ditto.
- * security.h (cygsid::getfrompw_gecos): Implement former getfrompw
- inline here.
- (cygsid::getfromgr_passwd): Implement former getfromgr inline here.
-
-2015-03-18 Corinna Vinschen <corinna@vinschen.de>
-
- * sec_auth.cc (get_server_groups): Drop unused passwd argument. Adjust
- calls throughout.
- (get_initgroups_sidlist): Ditto.
- (get_setgroups_sidlist): Ditto.
- (create_token): Ditto.
- (lsaauth): Ditto.
- * security.h (create_token): Adjust prototype to above change.
- (lsaauth): Ditto.
- (get_server_groups): Ditto.
- * grp.cc (get_groups): Adjust call to get_server_groups.
- * syscalls.cc (seteuid32): Adjust calls to lsaauth and create_token.
-
-2015-03-17 Corinna Vinschen <corinna@vinschen.de>
-
- * grp.cc (internal_getgroups): Drop unused timeout parameter.
- * pwdgrp.h (internal_getgroups): Ditto in prototype.
- * uinfo.cc (internal_getlogin): Ditto in usage.
-
-2015-03-17 Corinna Vinschen <corinna@vinschen.de>
-
- * spawn.cc (find_exec): Fix a name change in case of a symlink which
- can be opened as is.
-
-2015-03-12 Jon TURNEY <jon.turney@dronecode.org.uk>
-
- * exceptions.cc (stack_info): Add sigstackptr member.
- (walk): Unwind sigstackptr inside _sigbe and sigdelayed.
- * gendef (_sigdelayed_end): Add symbol to mark end of sigdelayed.
-
-2015-03-13 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cygwin/sys_time.h: Remove. Definitions moved to newlib's
- sys/time.h.
-
-2015-03-13 Alexey Pavlov <alexpux@gmail.com>
-
- * net.cc (in6addr_any): Remove redundant braces.
- (in6addr_loopback): Ditto.
-
-2015-03-12 Alexey Pavlov <alexpux@gmail.com>
-
- * include/cygwin/version.h: Fix typo.
-
-2015-03-12 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_socket.cc: Drop defining _BSDTYPES_DEFINED before including
- winsup.h.
-
-2015-03-12 Takashi Yano <takashi.yano@nifty.ne.jp>
-
- * fhandler_tty.cc (fhandler_pty_master::close): Add code to make slave
- detect closure of master. Fix typo in error message.
-
-2015-03-11 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cygwin/types.h: Include <sys/_timespec.h>
-
-2015-03-11 Corinna Vinschen <corinna@vinschen.de>
-
- * autoload.cc (CreateEnvironmentBlock): Make loading non-fatal.
-
-2015-03-11 Corinna Vinschen <corinna@vinschen.de>
-
- * autoload.cc (std_dll_init): Fix condition for breaking from DLL
- loading loop.
-
-2015-03-10 Yaakov Selkowitz <yselkowitz@cygwin.com>
-
- * include/stdint.h: Fix __x86_64__ conditional.
-
-2015-03-05 Corinna Vinschen <corinna@vinschen.de>
-
- * tty.h (tty::set_master_ctl_closed): Rename from set_master_closed.
- (tty::is_master_closed): Drop method.
- * fhandler_tty.cc (fhandler_pty_slave::open): Remove code prematurely
- bailing out if master control thread is not running.
- (fhandler_pty_slave::read): Don't generate SIGHUP if master control
- thread is not running.
- (fhandler_pty_master::close): Rearrange code to avoid stopping master
- control thread twice in multi-threaded scenarios.
-
-2015-03-05 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (fhandler_base::get_echo_handle): New virtual method.
- (class fhandler_pty_master): Add echo_r and echo_w handles constituting
- read and write side of new echo pipe.
- * select.cc (peek_pipe): On pty masters, check additionally if input
- from the echo pipe is available.
- * fhandler_tty.cc (fhandler_pty_master::doecho): Drop output_mutex
- locking. Write output to echo pipe.
- (fhandler_pty_master::process_slave_output): Check if input is available
- in echo pipe and prefer to read from it, if so.
- (fhandler_pty_slave::write): Drop output_mutex locking.
- (fhandler_pty_master::fhandler_pty_master): Initialize echo pipe
- handles to NULL.
- (fhandler_pty_master::close): Close and NULL echo pipe handles.
- (fhandler_pty_master::setup): Create echo pipe, close in case of error.
-
-2015-03-04 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 36.
-
-2015-03-03 Corinna Vinschen <corinna@vinschen.de>
-
- * msg.cc: Throughout, drop raising SIGSYS if cygserver is not running.
- * sem.cc: Ditto.
- * shm.cc: Ditto.
-
-2015-03-03 Corinna Vinschen <corinna@vinschen.de>
-
- * common.din (issetugid): Export.
- * glob.cc (issetugid): Drop macro.
- * sec_auth.cc (issetugid): New exported function.
- * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
-
-2015-03-02 Corinna Vinschen <corinna@vinschen.de>
-
- * security.cc (get_attribute_from_acl): Don't spill Everyone permissions
- into group permissions if owner SID == group SID.
- (alloc_sd): Add parenthesis for clarity.
-
-2015-02-28 Corinna Vinschen <corinna@vinschen.de>
-
- * uinfo.cc (pwdgrp::add_line): Return NULL if parsing a line failed.
- (pwdgrp::add_account_post_fetch): Check return value from add_line and
- return NULL if add_line returns NULL.
-
-2015-02-27 Corinna Vinschen <corinna@vinschen.de>
-
- * security.cc (alloc_sd): For directories, mark inherited ACEs
- inheritable to better follow POSIX 1003.1e rules.
-
-2015-02-27 Corinna Vinschen <corinna@vinschen.de>
-
- * sec_acl.cc (getacl): Add mask even if all group and secondary account
- permissions are 0.
-
-2015-02-27 Corinna Vinschen <corinna@vinschen.de>
-
- * uinfo.cc (pwdgrp::fetch_account_from_windows): Drop redundant test
- for SidTypeUser.
-
-2015-02-27 Corinna Vinschen <corinna@vinschen.de>
-
- * sec_acl.cc (setacl): Fix bug which leads to ACE duplication in
- case owner SID == group SID.
- (getacl): Reverse order of SID test against group or owner sid to
- prefer owner attributes over group attributes. Disable setting group
- permissions equivalent to owner permissions if owner == group. Add
- comment to explain why. Fix indentation.
- * security.cc (get_attribute_from_acl): Change type of local variables
- containing permission to mode_t. Apply deny mask to group if group SID
- == owner SID to avoid Everyone permissions to spill over into group
- permissions. Disable setting group permissions equivalent to owner
- permissions if owner == group. Add comment to explain why.
- * uinfo.cc (pwdgrp::fetch_account_from_windows): Allow user SID as
- group account if user is a "Microsoft Account". Explain why. Drop
- workaround enforcing primary group "Users" for "Microsoft Accounts".
-
-2015-02-26 Corinna Vinschen <corinna@vinschen.de>
-
- * ldap.cc (cyg_ldap::wait): Call cygwait with cw_infinite timeout value
- and with cw_sig_restart instead of cw_sig_eintr. Drop useless
- _my_tls.call_signal_handler call. Return EIO if cygwait failed.
-
-2015-02-26 Corinna Vinschen <corinna@vinschen.de>
-
- * posix_ipc.cc (ipc_mutex_lock): Revert unneeded call to signal handler.
-
-2015-02-26 Corinna Vinschen <corinna@vinschen.de>
-
- * posix_ipc.cc (ipc_mutex_lock): Add bool parameter to influence if
- cygwait should be in EINTR or in restart mode. Call signal handler
- if in EINTR mode.
- (mq_getattr): Call ipc_mutex_lock in restart mode.
- (mq_setattr): Ditto.
- (mq_notify): Ditto.
- (_mq_send): Call ipc_mutex_lock in EINTR mode.
- (_mq_receive): Ditto.
-
-2015-02-26 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_termios.cc (fhandler_termios::line_edit): Fix condition
- for writing remaining bytes in readahead buffer in non-canonical mode.
-
-2015-02-25 Corinna Vinschen <corinna@vinschen.de>
-
- * sec_acl.cc (setacl): Always grant default owner entry
- STANDARD_RIGHTS_ALL and FILE_WRITE_ATTRIBUTES access, too.
-
-2015-02-25 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_tape.cc (fhandler_dev_tape::_lock): Add cw_sig_restart to
- cygwait call.
- * thread.cc (pthread_mutex::lock): Ditto.
- (semaphore::_timedwait): Fix formatting.
- (semaphore::_wait): Ditto.
- * thread.h (fast_mutex::lock): Ditto.
-
-2015-02-25 Corinna Vinschen <corinna@vinschen.de>
-
- * security.cc (alloc_sd): Don't apply temporary workaround for chmod
- to DEF_USER_OBJ, DEF_GROUP_OBJ, and DEF_OTHER_OBJ ACEs.
-
-2015-02-25 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_tty.cc (fhandler_pty_slave::read): Having no input is not an
- error condition for tcflush.
-
-2015-02-25 Corinna Vinschen <corinna@vinschen.de>
-
- * security.cc (alloc_sd): Fix comment style. Remove code unused for
- years.
-
-2015-02-25 Corinna Vinschen <corinna@vinschen.de>
-
- * security.cc (alloc_sd): Add temporary workaround which disallows
- any secondary user to have more permissions than the primary group
- in calls to chmod. Add comment to explain why.
-
-2015-02-25 Corinna Vinschen <corinna@vinschen.de>
-
- * uinfo.cc (client_request_pwdgrp::client_request_pwdgrp): Add missing
- break in switch statement.
-
-2015-02-24 Corinna Vinschen <corinna@vinschen.de>
-
- * ldap.h: Remove index macros.
- (class cyg_ldap): Remove members srch_msg and srch_entry.
- (cyg_ldap::get_string_attribute): Remove private method taking index
- argument.
- (cyg_ldap::get_num_attribute): Ditto. Add method taking attribute name.
- (cyg_ldap::get_primary_gid): Adjust to aforementioned change.
- (cyg_ldap::get_unix_uid): Ditto.
- (cyg_ldap::get_unix_gid): Ditto.
- * ldap.cc: Throughout, use msg and entry in place of srch_msg and
- srch_entry.
- (std_user_attr): Add sAMAccountName and objectSid.
- (group_attr): Ditto.
- (cyg_ldap::close): Drop handling of srch_msg and srch_entry.
- (cyg_ldap::get_string_attribute): Move earlier in file.
- (cyg_ldap::get_num_attribute): Ditto.
- (cyg_ldap::enumerate_ad_accounts): Add comments for clarity.
- Use group_attr or user_attr rather than sid_attr to fetch all desired
- attributes for an account right away.
- (cyg_ldap::next_account): Store found SID in last_fetched_sid to
- skip calls to fetch_ad_account from fetch_account_from_windows.
- (cyg_ldap::get_string_attribute): Remove method taking index argument.
- (cyg_ldap::get_num_attribute): Ditto.
- * pwdgrp.h (class pg_ent): Fix formatting. Add member dom.
- * passwd.cc (pg_ent::enumerate_ad): Store current flat domain name
- in dom. Construct fetch_acc_t argument from LDAP attributes and
- call fetch_account_from_windows with that.
- * userinfo.h (enum fetch_user_arg_type_t): Rename FULL_grp_arg to
- FULL_acc_arg. Change throughout.
- (struct fetch_acc_t): Rename from fetch_full_grp_t. Change throughout.
- (struct fetch_user_arg_t): Rename full_grp to full_acc. Change
- throughout.
-
-2015-02-24 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (class fhandler_base): Add was_nonblocking status flag.
- * fhandler.cc (fhandler_base::set_flags): Set was_nonblocking if the
- O_NONBLOCK flag has been specified.
- (fhandler_base_overlapped::close): Check for was_nonblocking instead
- of for is_nonblocking. Explain why.
- (fhandler_base::set_nonblocking): Set was_nonblocking if noblocking
- mode gets enabled.
-
-2015-02-24 Ken Brown <kbrown@cornell.edu>
-
- * include/sys/socket.h (sockatmark): Add prototype.
-
-2015-02-23 Corinna Vinschen <corinna@vinschen.de>
-
- * userinfo.h (struct fetch_full_grp_t): Define only when building
- Cygwin itself.
- (struct fetch_user_arg_t): Ditto.
-
-2015-02-23 Corinna Vinschen <corinna@vinschen.de>
-
- * autoload.cc (LsaLookupSids): Import.
- * cygserver_pwdgrp.h: Include userinfo.h. Drop workaround defining
- fetch_user_arg_type_t locally.
- * grp.cc (internal_getgrsid_cachedonly): New function.
- (internal_getgrfull): Ditto.
- (internal_getgroups): Rearrange function. Center around fetching all
- cached group info first, calling LsaLookupSids on all so far non-cached
- groups second. Pass all available info to new internal_getgrfull call.
- * pwdgrp.h: Include userinfo.h. Move definitions of
- fetch_user_arg_type_t and fetch_user_arg_t there.
- (pwdgrp::add_group_from_windows): Declare with getting full group info.
- Called from internal_getgrfull.
- * uinfo.cc (pwdgrp::add_group_from_windows): Define.
- (pwdgrp::fetch_account_from_line): Add default case.
- (pwdgrp::fetch_account_from_file): Ditto.
- (pwdgrp::fetch_account_from_windows): Handle FULL_grp_arg.
- (client_request_pwdgrp::client_request_pwdgrp): Add default case.
- * userinfo.h: New header.
- (enum fetch_user_arg_type_t): Add FULL_grp_arg.
- (struct fetch_full_grp_t): New datatype.
-
-2015-02-23 Corinna Vinschen <corinna@vinschen.de>
-
- * grp.cc (internal_getgroups): Check for group attributes and
- Everyone sid before calling internal_getgrsid.
-
-2015-02-23 Corinna Vinschen <corinna@vinschen.de>
-
- * cygwait.h (enum cw_wait_mask): Add cw_sig_restart. Add comments
- to explain the meaning of the possible values.
- * cygwait.cc (is_cw_sig_restart): Define.
- (is_cw_sig_handle): Check for cw_sig_restart as well.
- (cygwait): Restart always if cw_sig_restart is set.
- * thread.cc (pthread::join): Call cygwait with cw_sig_restart flag
- to avoid having to handle signals at all.
-
-2015-02-23 Corinna Vinschen <corinna@vinschen.de>
-
- * cygwait.cc (cygwait): Move setting res to WAIT_SIGNALED to clarify
- when WAIT_SIGNALED is returned to the caller.
-
-2015-02-23 Corinna Vinschen <corinna@vinschen.de>
-
- * winsup.h (SIGTOMASK): Add cast to sigset_t to avoid int overflow.
-
-2015-02-20 Corinna Vinschen <corinna@vinschen.de>
-
- * grp.cc (internal_getgroups): Take additional timeout_ns parameter.
- Restrict fetching group account entries from user token groups by
- timeout_ns 100ns-intervals. Add preceding comment to explain why.
- * pwdgrp.h (internal_getgroups): Align prototype.
- * times.cc (GetTickCount_ns): New function.
- * uinfo.cc (internal_getlogin): Call internal_getgroups wih 300ms
- timeout.
- * winsup.h (GetTickCount_ns): Declare.
-
-2015-02-19 Jon TURNEY <jon.turney@dronecode.org.uk>
-
- * Makefile.in (sigfe.o): Use CFLAGS.
-
-2015-02-19 Jon TURNEY <jon.turney@dronecode.org.uk>
-
- * include/cygwin/stdlib.h (initstate, random, setstate, srandom):
- Check if __XSI_VISIBLE is set by sys/cdefs.h, rather than testing
- for _XOPEN_SOURCE directly, to work correctly when _GNU_SOURCE is
- set.
-
-2015-02-19 Corinna Vinschen <corinna@vinschen.de>
-
- * sec_acl.cc (setacl): Always grant owner FILE_WRITE_ATTRIBUTES access.
-
-2015-02-18 Corinna Vinschen <corinna@vinschen.de>
-
- * ldap.cc (struct cyg_ldap_search): Add scope member.
- (cyg_ldap::search_s): Add parameter scope. Use as LDAP search scope
- instead of fixed LDAP_SCOPE_SUBTREE scope.
- (ldap_search_thr): Call cyg_ldap::search_s with scope from argument.
- (cyg_ldap::search): Add parameter scope and fill in to cyg_ldap_search.
- (cyg_ldap::fetch_ad_account): Call search with LDAP_SCOPE_SUBTREE scope.
- (cyg_ldap::fetch_posix_offset_for_domain): Call search with
- LDAP_SCOPE_ONELEVEL scope.
- (cyg_ldap::fetch_unix_sid_from_ad): Call search with LDAP_SCOPE_SUBTREE
- scope.
- (cyg_ldap::fetch_unix_name_from_rfc2307): Ditto.
- * ldap.h (cyg_ldap::search): Align prototype to above change.
- (cyg_ldap::search_s): Ditto.
-
-2015-02-18 Corinna Vinschen <corinna@vinschen.de>
-
- * ldap.cc: Macro-ize filter expressions. Use throughout to compute
- required filter buffer size if filter is a local buffer.
-
-2015-02-17 Corinna Vinschen <corinna@vinschen.de>
-
- * ldap.cc (cyg_ldap::fetch_posix_offset_for_domain): Drop stray
- system_printf.
-
-2015-02-17 Corinna Vinschen <corinna@vinschen.de>
-
- * ldap.h (class cyg_ldap): Rename rootdse to def_context. Change
- throughout.
- * ldap.cc (cyg_ldap::open): Fix debug output.
- (cyg_ldap::fetch_ad_account): Rename rdse to base. Restrict LDAP
- query to users and groups only.
- (cyg_ldap::enumerate_ad_accounts): Rearrange filter expression for
- user accounts.
- (SYSTEM_CONTAINER): New macro.
- (cyg_ldap::fetch_posix_offset_for_domain): Set base in LDAP search
- to the "System" container in the default naming context to restrict
- the search scope.
- (cyg_ldap::fetch_unix_sid_from_ad): Add objectCategory=Person to
- search filter for users.
-
-2015-02-16 Corinna Vinschen <corinna@vinschen.de>
-
- * spawn.cc (find_exec): Extend preceeding comment to explain more
- detailed what's going on in this function. Overwrite potential symlink
- target with original path.
-
-2015-02-15 Corinna Vinschen <corinna@vinschen.de>
-
- * i686.din (__mempcpy): Move symbol export from here...
- * common.din (__mempcpy): ... to here.
-
-2015-02-14 Corinna Vinschen <corinna@vinschen.de>
-
- * path.h (path_conv): Make path_flags private. Rename known_suffix to
- suffix and make private. Rename normalized_path to posix_path and
- make privtae. Accommodate name changes throughout in path_conv
- methods.
- (path_conv::known_suffix): New method. Use throughout instead of
- accessing suffix directly.
- (path_conv::get_win32): Constify.
- (path_conv::get_posix): New method to read posix_path. Use throughout
- instead of accessing normalized_path directly.
- (path_conv::set_posix): Rename from set_normalized_path. Accommodate
- name change throughout.
-
- * spawn.cc (find_exec): Return POSIX path, not Win32 path.
-
-2015-02-12 Corinna Vinschen <corinna@vinschen.de>
-
- * sec_acl.cc (setacl): Introduce bool array "invalid" to note the
- invalidation of incoming acl entries while iterating over them.
-
-2015-02-12 Corinna Vinschen <corinna@vinschen.de>
-
- * cygheap.h (cygheap_pwdgrp::get_home): Add dnsdomain parameter to
- declaration in ldap-related method.
- (cygheap_pwdgrp::get_shell): Ditto.
- (cygheap_pwdgrp::get_gecos): Ditto.
- * ldap.cc (cyg_ldap::open): Use NO_ERROR instead of 0.
- (cyg_ldap::close): Reset last_fetched_sid.
- (cyg_ldap::fetch_ad_account): Return immediately if sid is the same as
- last_fetched_sid. Open LDAP connection from here. Move initialization
- of rdse after open call. Set last_fetched_sid if LDAP call was
- successful.
- * ldap.h (class cyg_ldap): Add member last_fetched_sid.
- (cyg_ldap::cyg_ldap): Initialize last_fetched_sid.
- (cyg_ldap::is_open): New inline method.
- * uinfo.cc (cygheap_pwdgrp::init): Drop initialization of db_home,
- db_shell and db_gecos with "cygwin desc", thus only using the fallback
- by default.
- (fetch_windows_home): Add parameter dnsdomain. Call
- cyg_ldap::fetch_ad_account if required.
- (fetch_from_path): Add parameter dnsdomain. Call fetch_windows_home
- accordingly.
- (cygheap_pwdgrp::get_home): Accomodate call to fetch_windows_home.
- Add dnsdomain parameter in ldap-related method. Call
- cyg_ldap::fetch_ad_account if required.
- (cygheap_pwdgrp::get_shell): Ditto.
- (cygheap_pwdgrp::get_gecos): Ditto.
- (pwdgrp::fetch_account_from_windows): Drop cyg_ldap::open call prior to
- cyg_ldap::fetch_ad_account call. Set is_current_user to true if we're
- handling the current user account. Make sure to perform the LDAP calls
- only for users, and only if required.
-
-2015-02-11 Corinna Vinschen <corinna@vinschen.de>
-
- * flock.cc (fhandler_base::lock): Convert accidental system_printf to
- debug_printf in case of non-matching file modes. Clear up debug output.
-
-2015-02-11 Corinna Vinschen <corinna@vinschen.de>
-
- * dlfcn.cc (check_path_access): Drop FE_NATIVE from find_exec call.
- (gfpod_helper): Drop equality sign from environment variable name
- in call to check_path_access.
- * exec.cc (execlp): Drop equality sign from environment variable name
- in call to find_exec.
- (execvp): Ditto.
- (execvpe): Ditto.
- * path.h (enum fe_types): Drop FE_NATIVE.
- (find_exec): Rename third paramter in declaration from search. Drop
- equality sign from default value.
- * spawn.cc (perhaps_suffix): Add PC_POSIX to path_conv::check call.
- (find_exec): Simplify function. Iterate over POSIX pathlist rather
- than Windows pathlist. Drop handling of FE_NATIVE flag. Always fill
- posix path of incoming path_conv buf, unless FE_NNF flag is given.
- (av::setup): Drop equality sign from environment variable name
- in call to find_exec. Call unshift with normalized_path.
- * winf.cc (av::unshift): Drop conv parameter and code converting
- Windows to POSIX path.
- * winf.h (av::unshift): Accommodate prototype.
-
-2015-02-10 Corinna Vinschen <corinna@vinschen.de>
-
- * syscalls.cc (fhandler_base::stat_fixup): Generate unique inode number
- for /dev/tty under all circumstances. Add to comment.
-
-2015-02-06 Corinna Vinschen <corinna@vinschen.de>
-
- * common.din: Export cabsl, cimagl, creall, finitel, hypotl, sqrtl.
- * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
-
-2015-02-06 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 35.
-
-2015-02-06 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_proc.cc (format_proc_cpuinfo): Enable multi-core fields
- on Intel CPUs.
-
-2015-02-04 Corinna Vinschen <corinna@vinschen.de>
-
- * common.din (wcstold): Export.
- * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
-
-2015-02-03 Corinna Vinschen <corinna@vinschen.de>
-
- * mkvers.sh: Automate generating the copyright date in the version
- resource.
- * winver.rc: Ditto.
-
-2015-01-28 Corinna Vinschen <corinna@vinschen.de>
-
- * Makefile.in (VERSION_OFILES): New variable containing object files
- with version information. Use throughout.
- (clean): Drop winver_stamp.
- (version.cc winver.o): Drop empty rule.
- (winver_stamp): Convert to rule targeting version.cc and winver.o
- directly. Drop touching winver_stamp. Fix typo.
-
-2015-01-24 Corinna Vinschen <corinna@vinschen.de>
-
- * uname.cc (uname): Shorten "WOW64" to "WOW" to account for the new
- Windows 10 OS version "10.0" starting with preview build 9926.
-
-2015-01-23 Pierre A. Humblet <pierre@phumblet.no-ip.org>
-
- * net.cc (cygwin_inet_pton): Declare.
- (gethostby_specials): New function.
- (gethostby_helper): Change returned addrtype in 4-to-6 case.
- (gethostbyname2): Call gethostby_specials.
-
-2015-01-22 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (class fhandler_process): Add fd_type member.
- * fhandler_process.cc (process_tab): Fix indentation.
- (fhandler_process::exists): Rely on format_process_fd returning file
- type in fd_type.
- (struct process_fd_t): Add fd_type member.
- (fhandler_process::fill_filebuf): Allow format_process_fd to set
- this->fd_type member.
- (format_process_fd): Fix path evaluation to allow recognizing trailing
- path components. Fix check for file descriptor path component. Return
- virt_symlink in fd_type if no trailing path compenents exist, return
- virt_fsdir otherwise and copy full resulting path into destbuf.
- * path.cc (path_conv::check): If /proc/$PID/fd symlink has trailing
- path components, reparse resulting path as if it's the incoming path.
- Add comment to wail over the outdated and hackish check method, and to
- explain what we do here.
-
-2015-01-21 Corinna Vinschen <corinna@vinschen.de>
-
- * uinfo.cc (pwdgrp::fetch_account_from_windows): Allow fetching gid,
- home, shell and gecos info from NT4 domain.
-
-2015-01-21 Corinna Vinschen <corinna@vinschen.de>
-
- * sec_auth.cc (get_logon_server): Constify domain parameter.
- * security.h (get_logon_server): Same in prototype.
-
-2015-01-20 Corinna Vinschen <corinna@vinschen.de>
-
- * common.din (sockatmark): Export.
- * net.cc (sockatmark): New function.
- * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
-
-2015-01-19 Corinna Vinschen <corinna@vinschen.de>
-
- * cygserver_ipc.h (ipc_retval): Add default constructor.
- (class thread): struct->class. Add prototypes for new private methods
- dup_signal_arrived and close_signal_arrived. Implement constructor and
- destructor.
-
-2015-01-16 Marco Atzeri <marco.atzeri@gmail.com>
- Corinna Vinschen <corinna@vinschen.de>
-
- * gendef: Export _sigbe on 64 bit as well.
- * malloc_wrapper.cc (free): In malloc_printf, call caller_return_address
- instead of __builtin_return_address.
- (malloc): Ditto.
- (realloc): Ditto.
- (calloc): Ditto.
- * miscfuncs.cc (__caller_return_address): New function.
- * miscfuncs.h (caller_return_address): New macro calling
- __caller_return_address.
- (__caller_return_address): Add prototype.
-
-2015-01-14 Corinna Vinschen <corinna@vinschen.de>
-
- * uinfo.cc (fetch_windows_home): Disable fetching from homeDrive or
- usri3_home_dir_drive. Add comment.
-
-2015-01-14 Corinna Vinschen <corinna@vinschen.de>
-
- * environ.cc (renv_arr): Drop variables not usually in a Windows
- environment and all variables being uppercase anyway. But keep
- TMP and TEMP for paranoia.
-
-2015-01-14 Corinna Vinschen <corinna@vinschen.de>
-
- * environ.cc (build_env): When merging the user's Windows environment,
- explicitely skip the variables needing conversion to avoid collisions.
- Extend comment to explain.
-
-2015-01-13 Corinna Vinschen <corinna@vinschen.de>
-
- * uinfo.cc (pwdgrp::fetch_account_from_windows): Drop code from
- 2014-11-17, always prepending domain to NT SERVICE accounts when
- searching by name. Fix test expression to allow fully qualified
- names for NT SERVICE accounts. Extend comment to explain a bit.
-
-2015-01-12 Pierre A. Humblet <pierre@phumblet.no-ip.org>
-
- * minires-os-if.c (cygwin_query): Change questions into answers.
-
-2015-01-08 Corinna Vinschen <corinna@vinschen.de>
-
- * cygheap.h (cygheap_pwdgrp::get_shell): Add sid to argument list.
- (cygheap_pwdgrp::get_gecos): Ditto.
- * uinfo.cc (fetch_windows_home): Accept cyg_ldap and PUSER_INFO_3
- arguments, and fetch db home dir values right here.
- (fetch_from_path): Accept cyg_ldap, PUSER_INFO_3 pointers and sid
- arguments. Add '%H' format specifier to fetch Windows home dir in
- POSIX notation.
- (cygheap_pwdgrp::get_home): Accommodate changes to fetch_windows_home
- and fetch_from_path.
- (cygheap_pwdgrp::get_shell): Ditto.
- (cygheap_pwdgrp::get_gecos): Ditto.
- (pwdgrp::fetch_account_from_windows): Accommodate sid argument to
- cygheap_pwdgrp::get_shell and cygheap_pwdgrp::get_gecos.
-
-2015-01-08 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cygwin/socket.h (struct cmsghdr): Redefine cmsg_len as type
- size_t. Add comment to explain why.
-
-2015-01-08 Corinna Vinschen <corinna@vinschen.de>
-
- * localtime.cc (__cygwin_gettzoffset): New function for access from
- newlib.
- (__cygwin_gettzname): Ditto.
-
-2015-01-07 Corinna Vinschen <corinna@vinschen.de>
-
- * localtime.cc (tzload): Fix loading latest timezone offsets into
- tzinfo from zoneinfo files. Add comment to explain what we do.
- (tzparse): Add more comments to explain in case of loading timezone
- offset from other sources.
-
+Deprecated. See git log instead.
diff --git a/winsup/cygwin/ChangeLog-2015 b/winsup/cygwin/ChangeLog-2015
new file mode 100644
index 000000000..546df2489
--- /dev/null
+++ b/winsup/cygwin/ChangeLog-2015
@@ -0,0 +1,2260 @@
+2015-12-25 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Only request
+ query_write_dac rather than query_write_control access when writing
+ an ACL. Fix a comment.
+
+2015-12-24 Corinna Vinschen <corinna@vinschen.de>
+
+ * sec_acl.cc (__aclcalcmask): New function to recalculate ACL masks.
+ (aclsort32): Honor calclass argument.
+
+2015-12-24 Corinna Vinschen <corinna@vinschen.de>
+
+ * sec_acl.cc (aclfromtext32): Return missing aclcnt parameter.
+
+2015-12-24 Corinna Vinschen <corinna@vinschen.de>
+
+ * sec_acl.cc (acltotext32): Use tmp_pathbuf rather than stack buffer.
+ (aclfromtext32): Ditto.
+
+2015-12-24 Corinna Vinschen <corinna@vinschen.de>
+
+ * sec_acl.cc: Cosmetic changes.
+
+2015-12-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * strfuncs.cc (sys_cp_wcstombs): Delete and move functionality into
+ sys_wcstombs.
+ * wchar.h (sys_cp_wcstombs): Drop declaration.
+ * fhandler_console.cc (dev_console::con_to_str): Call sys_wcstombs.
+
+2015-12-16 Corinna Vinschen <corinna@vinschen.de>
+
+ * grp.cc (pwdgrp::parse_group): Only copy the SID if it's valid.
+ * passwd.cc (pwdgrp::parse_passwd): Ditto.
+
+2015-12-14 Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+ * include/cygwin/signal.h (sigset_t): Move defintition to newlib.
+
+2015-12-11 Ken Brown <kbrown@cornell.edu>
+
+ * fhandler_disk_file.cc (fhandler_base::fstat_helper): Align
+ regparm attribute to declaration in fhandler.h.
+
+2015-12-10 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.h (class path_conv_handle): Use FILE_ALL_INFORMATION instead of
+ FILE_NETWORK_OPEN_INFORMATION. Use definitions from ntdll.h since it's
+ included anyway.
+ (path_conv_handle::fai): Change name from fnoi.
+ (path_conv::fai): Ditto.
+ (file_get_fai): Change name from file_get_fnoi. Drop second parameter.
+ * path.cc (file_get_fai): Ditto. Fetch FileAllInformation rather than
+ FileNetworkOpenInformation. Convert STATUS_BUFFER_OVERFLOW to
+ STATUS_SUCCESS. Remove workaround to fetch FileBasicInformation and
+ FileStandardInformation on filesystems with broken
+ FileNetworkOpenInformation handling.
+ (symlink_info::check): Accommodate above changes. In case of using
+ the NtQueryDirectoryFile fallback, fetch FileIdBothDirectoryInformation
+ to get inode number as well.
+ * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Drop outdated
+ comment. Accommodate change to using FileAllInformation. Drop
+ extra function calls to fetch NumberOfLinks and IndexNumber. Set ino
+ directly from IndexNumber stored in pc.fai(). Drop second argument
+ from call to fstat_helper.
+ (fhandler_base::fstat_by_name): Drop second argument from call to
+ fstat_helper.
+ (fhandler_base::fstat_helper): Drop second parameter. Accommodate
+ the fact that we access a FILE_ALL_INFORMATION structure now.
+ (fhandler_base::open_fs): Set ino directly from IndexNumber stored in
+ pc.fai().
+ * fhandler.h (fhandler_base::fstat_helper): Fix declaration accrdingly.
+
+2015-12-10 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (path_conv::ndisk_links): Drop unused method.
+ (fhandler_base::fstat_helper): Drop unused call to ndisk_links.
+
+2015-12-10 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (path_conv::get_ino_by_handle): Rename fai to
+ fii for clearness.
+ (fhandler_disk_file::readdir): Ditto.
+
+2015-12-09 Corinna Vinschen <corinna@vinschen.de>
+
+ * ntdll.h (FILE_ID_BOTH_DIR_INFORMATION): Revert IndexNumber to FileId
+ since it's actually right here.
+ * fhandler_disk_file.cc: Accommodate above change.
+
+2015-12-08 Corinna Vinschen <corinna@vinschen.de>
+
+ * thread.cc (pthread::setcancelstate): Remove unnecessary locking.
+ (pthread::setcanceltype): Ditto.
+
+2015-12-08 Corinna Vinschen <corinna@vinschen.de>
+
+ * ntdll.h (FILE_ID_BOTH_DIR_INFORMATION): Rename FileId to IndexNumber
+ to align with Microsoft naming scheme.
+ (FILE_INTERNAL_INFORMATION): Ditto.
+ * fhandler_disk_file.cc: Rename FileId to IndexNumber throughout.
+ * syscalls.cc: Ditto.
+
+2015-12-07 Johannes Schindelin <johannes.schindelin@gmx.de>
+
+ * mount.cc (mount_info::from_fstab_line): Support mounting the current
+ user's temp folder as /tmp/. This is particularly useful a feature
+ when Cygwin's own files are write-protected.
+
+2015-12-07 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/sys/select.h: Move select(2) macros from newlib's sys/types.h
+ here. Rename howmany to _howmany to unclutter namespace. Move file to
+ newlib.
+ * libc/rexex.cc: Add declaration for cygwin_gethostname.
+ * poll.cc: Include sys/param.h and locale select.h.
+ * select.h (cygwin_select): Declare.
+ * uname.cc: Declare cygwin_gethostname.
+ * winsup.h: Drop declarations of cygwin_select and cygwin_gethostname.
+
+2015-12-07 Corinna Vinschen <corinna@vinschen.de>
+
+ * dcrt0.cc: Semi-revert commit 12743c2d5d2721f3a80b4d7671a349be03c1f520.
+ (dll_crt0_0): Drop setting wow64_needs_stack_adjustment on 64 bit.
+ (_dll_crt0): Split out 64 bit code again and always create new main
+ thread stack, unless forked off from the non main thread in the parent.
+ Call create_new_main_thread_stack with parent stack commitsize if
+ started from the parent's main thread.
+ Only call child_info_fork::alloc_stack for the latter case on 64 bit.
+ Slightly rearrange moving rsp and rbp to new stack and document how.
+ Revert 32 bit wow64 handling to its former self.
+ * miscfunc.cc (create_new_main_thread_stack): Take a commitsize
+ parameter and use it if it's not 0. Don't set _main_tls here, it's
+ done in the caller _dll_crt0 anyway. Return stackbase - 16 bytes,
+ rather than stacklimit (which was very wrong anyway).
+ * miscfuncs.h (create_new_main_thread_stack): Accommodate declaration
+ to aforementioned change.
+ * wincap.h (wincaps::has_3264_stack_broken): Remove element.
+ * wincap.cc: Ditto, throughout.
+ * wow64.cc: Semi-revert to pre-12743c2d5d2721f3a80b4d7671a349be03c1f520
+ but keep architecture-agnostic type changes intact. Fix formatting.
+ * wow64.h: Revert to pre-12743c2d5d2721f3a80b4d7671a349be03c1f520.
+
+2015-12-06 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/sys/cygwin.h (CCP_PROC_CYGDRIVE): New flag.
+ * mount.cc (mount_info::cygdrive_posix_path): Take flag values rather
+ than just a trailing_slash_p bool. Emit /proc/cygdrive path if
+ CCP_PROC_CYGDRIVE flag is given.
+ (mount_info::conv_to_posix_path): Take flag values rather than just
+ a keep_rel_p bool. Rename _p variables. Print flag value as hex in
+ debug_printf. Call cygdrive_posix_path with flag values.
+ * mount.h (mount_info::cygdrive_posix_path): Accommodate above change
+ in declaration.
+ (mount_info::conv_to_posix_path): Ditto.
+ * fhandler_process.cc (format_process_exename): Accommodate change to
+ mount_info::conv_to_posix_path.
+ * path.cc (cygwin_conv_path): Ditto.
+
+2015-12-03 Corinna Vinschen <corinna@vinschen.de>
+
+ * dcrt0.cc (dll_crt0_0): On 64 bit, set wow64_needs_stack_adjustment
+ if not started from a 64 bit process.
+ (_dll_crt0): Enable wow64_needs_stack_adjustment branch on 64 bit
+ as well. Remove 64 bit only code. Introduce CREATE_STACK and
+ FIX_STACK macros to conditionalize the code. Rearrange and
+ partially rewrite comments.
+ * wincap.h (wincaps::has_3264_stack_broken): New element.
+ * wincap.cc: Implement above element throughout.
+ (wincapc::init): Set has_3264_stack_broken to false on 32 bit.
+ * wow64.cc: Enable functionality on 64 bit architecture, except for
+ wow64_revert_to_original_stack. Enhance comments to explain.
+ (wow64_eval_expected_main_stack): Make 64 bit clean.
+ (wow64_test_for_64bit_parent): Ditto.
+ * wow64.h: Export wow64_revert_to_original_stack on 32 bit only,
+ everything else on all architectures.
+
+2015-12-03 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_process.cc (thread_info::thread_info): Accommodate the fact
+ that TEBs take two pages.
+ (thread_info::fill_if_match): Rewrite the method for post W10 1511 TEB
+ detection.
+ (format_process_maps): Add a state member to region. Fix the code
+ to handle PEB/TEB region since W10 1511.
+
+2015-12-03 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_process.cc (heap_info::fill_if_match): Return NULL, not 0.
+ (thread_info::fill_if_match): Ditto.
+ (thread_info::fill_if_match): New method to extract TEB info from
+ PEB/TEB region since W10 1511.
+ (format_process_maps): Drop outdated FIXME comment. Add code to handle
+ PEB/TEB region since W10 1511.
+ * mmap.cc (posix_madvise): Align comment to new W10 1511 version.
+ * wincap.h (wincaps::has_new_pebteb_region): New element.
+ * wincap.cc: Implement above element throughout.
+ (wincap_10_1511): New global wincaps to support Windows 10 since 1511.
+ (wincapc::init): Use wincap_10_1511 for W10 builds >= 10586.
+
+2015-12-03 Corinna Vinschen <corinna@vinschen.de>
+
+ x86_64 only:
+ * dcrt0.cc (_dll_crt0): Always move stack to pthread stack area.
+ Explain why.
+ * miscfuncs.cc (create_new_main_thread_stack): New function to create
+ OS-like stack for main thread in pthread stack area.
+ * miscfuncs.cc (create_new_main_thread_stack): Declare.
+
+2015-12-03 Corinna Vinschen <corinna@vinschen.de>
+
+ * dcrt0.cc (child_info_fork::alloc_stack): Fix formatting.
+ * fork.cc (frok::parent): Fix formatting.
+ (child_copy): Change type of res to BOOL.
+
+2015-12-03 Corinna Vinschen <corinna@vinschen.de>
+
+ * crt0.cc (dll_crt0_1): Always restore the TEB stack info. Especially
+ restore DeallocationStack. Fix comment.
+
+2015-12-03 Corinna Vinschen <corinna@vinschen.de>
+
+ * dcrt0.cc (child_info_fork::alloc_stack): Don't set stackaddr to 0.
+
+2015-12-03 Corinna Vinschen <corinna@vinschen.de>
+
+ * child_info.h (struct child_info): Add member from_main.
+ * fork.cc (frok::child): Check from_main rather than stackaddr.
+ (frok::parent): Set ch.from_main if running in the main thread.
+
+2015-12-02 Corinna Vinschen <corinna@vinschen.de>
+
+ * child_info.h (CURR_CHILD_INFO_MAGIC): Align to below change.
+ (class child_info_fork): Rename stacktop to stacklimit. Rename
+ stackbottom to stackbase. Accommodate name change throughout Cygwin.
+ Rephrase comments to be clearer.
+
+2015-12-02 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygtls.h (_tlsbase): Remove. Replace throughout with
+ NtCurrentTeb()->Tib.StackBase.
+ (_tlstop): Remove. Replace throughout with
+ NtCurrentTeb()->Tib.StackLimit.
+ * dcrt0.cc (child_info_fork::alloc_stack): Move definition of local
+ teb variable up to be used throughout.
+ * include/cygwin/config.h (__getreent): Use inline function on both
+ architectures.
+
+2015-11-29 Corinna Vinschen <corinna@vinschen.de>
+
+ * uinfo.cc (pwdgrp::fetch_account_from_windows): Only create 1-5-32-x
+ SIDs from ids for x <= 999.
+
+2015-11-29 Corinna Vinschen <corinna@vinschen.de>
+
+ * sec_acl.cc (get_posix_access): In case owner SID == group SID, when
+ encountering the group entry, change the value of `id' accordingly.
+ Explain why.
+
+2015-11-28 Corinna Vinschen <corinna@vinschen.de>
+
+ * gendef (sigdelayed): Save and restore content of the MXCSR register
+ on x86_64.
+
+2015-11-27 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygtls.h (_cygtls::wait_signal_arrived): Renamed from
+ set_signal_arrived.
+ (_cygtls::set_signal_arrived): New function signalling signal_arrived.
+ (_cygtls::reset_signal_arrived): Don't reset will_wait_for_signal.
+ (_cygtls::unwait_signal_arrived): New function only resetting
+ will_wait_for_signal.
+ (class wait_signal_arrived): Rename from set_signal_arrived.
+ Accommodate name change throughout Cygwin.
+ (wait_signal_arrived::~wait_signal_arrived): Call
+ _cygtls::unwait_signal_arrived. Add comment.
+ * cygserver_ipc.h (ipc_set_proc_info): Fetch signal_arrived handle
+ via call to _cygtls::get_signal_arrived.
+ * exceptions.cc (_cygtls::interrupt_setup): Signal signal_arrived via
+ call to _cygtls::set_signal_arrived.
+ (_cygtls::handle_SIGCONT): Ditto.
+ * fhandler_socket.cc (fhandler_socket::wait_for_events): Generate
+ WSAEVENT array prior to entering wait loop. Add cancel event object
+ if available. Remove calls to pthread_testcancel and just call
+ pthread::static_cancel_self if the cancel event object is signalled.
+
+2015-11-26 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.cc (symlink_native): Fix index when looking for colon in path.
+
+2015-11-21 Corinna Vinschen <corinna@vinschen.de>
+
+ * nlsfuncs.cc (setlocaleinfo): New macro calling __setlocaleinfo.
+ (__setlocaleinfo): New function to set a locale-specific character
+ to an explicit wchar_t value.
+ (__set_lc_numeric_from_win): Handle fa_IR and ps_AF locales to return
+ same decimal point and thousands separator characters as on Linux.
+ (__set_lc_monetary_from_win): Ditto for monetary characters.
+
+2015-11-20 Corinna Vinschen <corinna@vinschen.de>
+
+ * common.din (strtold): Drop redirection to _strtold.
+
+2015-11-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * sec_acl.cc (get_posix_access): Skip merging permissions if current
+ user has rwx permissions anywa, or if the sum of all group and other
+ permissions is less than or equal to the user's permissions.
+
+2015-11-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * sec_acl.cc (get_posix_access): Fix computation of effective user
+ permissions to handle current user, not only the file owner.
+
+2015-11-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_tty.cc (fhandler_pty_slave::open): Add S_IFCHR flag
+ in call to create_object_sd_from_attribute.
+ (fhandler_pty_slave::fstat): Ditto in call to get_object_attribute.
+ (fhandler_pty_slave::fchmod): Add an orig_mode flag and ditto for
+ both calls.
+ (fhandler_pty_master::setup): Ditto in call to
+ create_object_sd_from_attribute.
+ * security.cc (get_object_attribute): Never add S_IFCHR to mode
+ here. Let the caller decide.
+ (create_object_sd_from_attribute): Ditto.
+
+2015-11-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * security.h (authz_get_user_attribute): Declare bool.
+ * sec_helper.cc (authz_ctx::get_user_attribute): Make bool method.
+ Set S_IxOTH bits in returned attributes rather than S_IxUSR bits.
+ (authz_get_user_attribute): Make bool function.
+ * sec_acl.cc (get_posix_access): Introduce cygsid array to keep
+ track of all SIDs in the ACL. Move AuthZ calls into !new_style
+ permission post processing. When not using AuthZ, use
+ CheckTokenMembership to collect group permissions.
+
+2015-11-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Disable
+ deviation from POSIX 1003.1e in terms of GROUP_OBJ/CLASS_OBJ
+ permissions. Follow POSIX 1003.1e again. Keep old code in
+ for future reference.
+ * sec_acl.cc: Accommodate changes in ACE creation in leading
+ comment.
+ (set_posix_access): Fix user deny ACE creation. Split group
+ deny ACE creation into two steps, one to reflect CLASS_OBJ,
+ the other to reflect OTHER_OBJ.
+
+2015-11-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * sec_acl.cc (getacl): Use Authz to fetch correct user permissions.
+
+2015-11-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * autoload.cc (AuthzAccessCheck): Import.
+ (AuthzFreeContext): Import.
+ (AuthzInitializeContextFromSid): Import.
+ (AuthzInitializeContextFromToken): Import.
+ (AuthzInitializeResourceManager): Import.
+ * sec_helper.cc (get_sids_info): Remove.
+ (class authz_ctx_cache_entry): New class.
+ (class authz_ctx_cache): New class.
+ (class authz_ctx): New class.
+ (authz_get_user_attribute): New function.
+ * security.h (get_sids_info): Drop prototype.
+ (authz_get_user_attribute): Add prototype.
+ * winlean.h (_AUTHZ_): Define.
+
+2015-11-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * sec_acl.cc (get_posix_access): Fix class_perm in !new_style case.
+
+2015-11-18 Corinna Vinschen <corinna@vinschen.de>
+
+ Reapply POSIX ACL changes.
+
+ * sec_acl.cc (get_posix_access): Check for Cygwin "standard" ACL.
+ Apply umask, if so. Align comments.
+ * security.cc (set_created_file_access): Fix permission masking by
+ incoming requested file mode.
+
+ * sec_acl.cc (set_posix_access): Apply mask only in terms of execute bit
+ for SYSTEM and Admins group.
+
+ * sec_acl.cc (set_posix_access): Don't create DENY ACEs for USER and
+ GROUP entries if they are the same as USER_OBJ or GROUP_OBJ.
+
+ * fhandler.h (fhandler_pty_slave::facl): Add prototype.
+ * fhandler_tty.cc (fhandler_pty_slave::facl): New method.
+ (fhandler_pty_slave::fchown): Fix uid/gid handling.
+ * sec_acl.cc (set_posix_access): Drop superfluous class_idx variable.
+ Simplify and move around code in a few places. To improve ACL
+ readability, add r/w permissions to Admins ACE appended to pty ACL.
+ Add comment to explain Windows ACE Mask filtering being in the way of
+ creating a real CLASS_OBJ.
+ (get_posix_access): Fake CLASS_OBJ for ptys. Explain why.
+ * security.cc (get_object_attribute): Add S_IFCHR flag to attributes
+ when calling get_posix_access.
+
+ * sec_acl.cc (set_posix_access): Move merging group perms into owner
+ perms in case of owner == group after mask has been computed. Take
+ mask into account when doing so to avoid unnecessary ACCESS_DENIED_ACE.
+
+ * sec_acl.cc (get_posix_access): Only set saw_group_obj flag if we saw
+ the ACCESS_ALLOWED_ACE.
+
+ * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Deliberatly
+ set GROUP_OBJ and CLASS_OBJ perms to new group perms. Add comment
+ to explain why.
+ * security.cc (set_created_file_access): Ditto.
+
+ * sec_acl.cc (set_posix_access): Replace previous patch. Return
+ EINVAL if uid and/or guid is invalid and not backed by an actual
+ Windows account.
+
+ * sec_acl.cc (set_posix_access): Workaround owner/group SIDs being NULL.
+
+ * sec_acl.cc (set_posix_access): Handle files with owner == group.
+ Rephrase switch statement checking against unfiltered a_type value.
+ (get_posix_access): Handle files with owner == group.
+
+ * sec_acl.cc (get_posix_access): Don't use GROUP_OBJ access to fix up
+ CLASS_OBJ mask on old-style ACLs. Fix a comment.
+
+ * sec_acl.cc (set_posix_access): Always make sure Admins have
+ WRITE_DAC and WRITE_OWNER permissions.
+ * security.h (create_object_sd_from_attribute): Drop handle parameter
+ from prototype.
+ * security.cc (create_object_sd_from_attribute): Drop handle parameter.
+ Just create the standard POSIXy security descriptor.
+ (set_object_attribute): Accommodate dropped paramter in call to
+ create_object_sd_from_attribute.
+ * fhandler_tty.cc: Ditto, throughout.
+
+ * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Fix typo in
+ mask computation.
+
+ * fhandler.cc (fhandler_base::open_with_arch): Call open with mode
+ not umasked.
+ (fhandler_base::open): Explicitely umask mode on NFS here. Call new
+ set_created_file_access rather than set_file_attribute.
+ * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Reimplement
+ setting permissions on filesystems supporting ACLs using the new
+ set_posix_access call.
+ (fhandler_disk_file::fchown): Ditto.
+ (fhandler_disk_file::mkdir): Call new set_created_file_access rather
+ than set_file_attribute.
+ * fhandler_socket.cc (fhandler_socket::bind): Don't umask here. Add
+ WRITE_OWNER access to allow writing group in case of SGID bit set.
+ Call new set_created_file_access rather than set_file_attribute.
+ * path.cc (symlink_worker): Call new set_created_file_access rather
+ than set_file_attribute.
+ * sec_acl.cc (searchace): Un-staticize.
+ (set_posix_access): New, complementary functionality to
+ get_posix_access.
+ (setacl): Implement in terms of get_posix_access/set_posix_access.
+ (get_posix_access): Add handling for just created files requiring
+ their first Cygwin ACL. Fix new_style recognition. Handle SGID
+ bit. For old-style ACLs, ignore SYSTEM and Administrators when
+ computing the {DEF_}CLASS_OBJ perms.
+ * security.cc (get_file_sd): Revamp comment. Change and (hopefully)
+ speed up inheritance processing for just created files.
+ (alloc_sd): Remove.
+ (set_security_attribute): Call set_posix_access instead of alloc_sd.
+ (get_object_attribute): Fix return value.
+ (create_object_sd_from_attribute): Call set_posix_access instead of
+ alloc_sd.
+ (set_file_attribute): Remove.
+ (set_created_file_access): New function implemented in terms of
+ get_posix_access/set_posix_access.
+ * security.h (set_file_attribute): Remove prototype.
+ (set_created_file_access): Add prototype.
+ (searchace): Ditto.
+ (set_posix_access): Ditto.
+ * syscalls.cc (open): Call open_with_arch with mode not umasked.
+
+ * sec_acl.cc: Change preceeding comment explaining new-style ACLs.
+ Describe how to generate deny ACEs in more detail. Accommodate the
+ fact that a NULL deny ACE is used for {DEF_}CLASS_OBJ, rather than
+ a special Cygwin ACE. Improve further comments.
+ (CYG_ACE_NEW_STYLE): Define.
+ (get_posix_access): Change from Cygwin ACE to NULL deny ACE. Fix
+ CLASS_OBJ handling to generate CLASS_OBJ and DEF_CLASS_OBJ from a single
+ NULL deny ACE if the inheritance flags say so.
+ * sec_helper.cc (well_known_cygwin_sid): Remove.
+ * security.h (well_known_cygwin_sid): Drop declaration.
+
+ * sec_acl.cc (CYG_ACE_ISBITS_TO_WIN): Fix typo.
+ (get_posix_access): Rename index variable from i to idx. Define only
+ once at top level.
+
+ * security.cc (add_access_allowed_ace): Drop unused parameter "offset".
+ Accommodate throughout.
+ (add_access_denied_ace): Ditto.
+ * sec_acl.cc: Accommodate above change throughout.
+ * security.h (add_access_allowed_ace): Adjust prototype to above change.
+ (add_access_denied_ace): Ditto.
+
+ * sec_acl.cc (get_posix_access): Handle multiple ACEs for the
+ owner and primary group of the file. Handle the default primary
+ group ACE as DEF_GROUP_OBJ entry if the directory has the S_ISGID bit
+ set. Add comments. Minor code rearrangements.
+
+ Preliminary read side implementation of new permission handling.
+ * acl.h (MAX_ACL_ENTRIES): Raise to 2730. Add comment to explain.
+ * sec_acl.cc: Add leading comment to explain new ACL style.
+ Add definitions and macros to use for bits in new Cygwin ACL.
+ (DENY_RWX): New mask value for all temporary deny bits.
+ (getace): Add bool parameter to decide when leaving all bits intact,
+ rather than filtering them per the already set bits.
+ (get_posix_access): New function, taking over functionality to read
+ POSIX ACL from SECURITY_DESCRIPTOR.
+ (getacl): Just call get_posix_access.
+ * sec_helper.cc (well_known_cygwin_sid): Define.
+ * security.cc (get_attribute_from_acl): Remove.
+ (get_info_from_sd): Remove.
+ (get_reg_sd): Call get_posix_access instead of get_info_from_sd.
+ (get_file_attribute): Ditto.
+ (get_object_attribute): Ditto.
+ * security.h (well_known_cygwin_sid): Declare.
+ (get_posix_access): Add prototype.
+
+ * Throughout, use simpler ACE macros from Windows' accctrl.h.
+
+2015-11-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/version.h (CYGWIN_VERSION_DLL_MAJOR): Bump to 2004.
+ (CYGWIN_VERSION_API_MINOR): Reset to 0.
+
+2015-11-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * collate.h (__collate_load_error): Convert to extern declaration.
+ * globals.cc (__collate_load_error): Define and initialize here.
+ * libc/fnmatch.c: Update to latest from FreeBSD.
+
+2015-11-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.cc (symlink_native): Don't generate native symlink targeting
+ Cygwin special file. Inform the caller.
+ (symlink_worker): Don;t bail out in WSYM_nativestrict case if the
+ target is a Cygwin special file.
+
+2015-11-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * lc_msg.h: Regenerate.
+
+2015-11-17 Yaakov Selkowitz <yselkowi@redhat.com>
+
+ * common.din (rpmatch): Export.
+ * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
+
+2015-11-12 Corinna Vinschen <corinna@vinschen.de>
+
+ * flock.cc (lockf_t::create_lock_obj): Correctly recreate lock object
+ attributes anew in each loop.
+
+2015-11-12 Corinna Vinschen <corinna@vinschen.de>
+
+ * init.cc (munge_threadfunc): Don't call NtQueryInformationThread with
+ ThreadQuerySetWin32StartAddress info class on XP 64 and Server 2003 64.
+ It crashes.
+
+2015-11-09 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 1.
+
+2015-11-05 Corinna Vinschen <corinna@vinschen.de>
+
+ * mount.cc (fs_info::update): Fake a serial number on filesystems not
+ providing one.
+
+2015-11-05 Corinna Vinschen <corinna@vinschen.de>
+
+ * fcntl.cc (fcntl64): Don't lock fd table when performing locking.
+ * flock.cc (flock): Ditto.
+ (lockf): Ditto.
+
+2015-11-05 Corinna Vinschen <corinna@vinschen.de>
+
+ * sigproc.cc (pending_signals::clear): Yet another fix to fix the fix.
+ Actually iterate over the list of pending signals even if there's a
+ signal which doesn't have to be cleared. Other than that, revert loop
+ to it's former self as a while loop.
+
+2015-11-04 Corinna Vinschen <corinna@vinschen.de>
+
+ * globals.cc (ro_u_prlfs): Add trailing NUL. Explain why.
+ * mount.cc (fs_info::update): Add a comment to explain PrlSF.
+ * path.h (path_conv::fs_is_prlfs): Add for symmetry.
+
+2015-11-03 Corinna Vinschen <corinna@vinschen.de>
+
+ * sigproc.cc (pending_signals::clear): Fix previous fix resulting in
+ yet another endless loop.
+
+2015-11-02 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/netinet/ip.h (MAX_IPOPTLEN): Define.
+
+2015-11-02 Corinna Vinschen <corinna@vinschen.de>
+
+ * sigproc.cc (class pending_signals): Drop sigproc_init friendship.
+ (pending_signals::clear): Fix implementation to avoid subsequent
+ endless loop in wait_sig. Improve comment.
+
+2015-11-02 Corinna Vinschen <corinna@vinschen.de>
+
+ * mount.h (enum fs_info_type): Add prlfs (Parallels Desktop FS).
+ (class fs_info): Add has_broken_fnoi flag. Implement prlfs FS flag.
+ * mount.cc (fs_info::update): Handle PrlFS. Fill new has_broken_fnoi
+ flag with life.
+ (fs_names): Add prlfs.
+ * globals.cc (ro_u_prlfs): Define.
+ * path.h (path_conv::has_broken_fnoi): New method.
+ * path.cc (symlink_info::check): Call file_get_fnoi utilizing new
+ has_broken_fnoi filesystem flag.
+ * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Ditto.
+
+2015-10-30 Corinna Vinschen <corinna@vinschen.de>
+
+ * nlsfuncs.cc (__get_lcid_from_locale): Handle LocaleNameToLCID
+ returning LOCALE_CUSTOM_UNSPECIFIED instead of failing in case of
+ an unsupported locale on Windows 10.
+
+2015-10-30 Corinna Vinschen <corinna@vinschen.de>
+
+ * exceptions.cc (sigpacket::process): Avoid potentially double unlocking
+ the TLS mutex.
+
+2015-10-30 Corinna Vinschen <corinna@vinschen.d>
+
+ * signal.cc (sigwait): Fix return value to reflect errno in case of
+ error according to POSIX. Never return EINTR.
+ * thread.cc (pthread_kill): Return errno if sig_send failed.
+
+2015-10-29 Qian Hong <qhong@codeweavers.com>
+
+ * init.cc (munge_threadfunc): Check that we're actually replacing
+ the correct original function address on the stack.
+ * ntdll.h (enum _THREADINFOCLASS): Add ThreadQuerySetWin32StartAddress.
+
+2015-08-21 Jon Turney <jon.turney@dronecode.org.uk>
+
+ * cygwin-cxx.h: Remove execute permissions.
+ * fenv.cc: Ditto.
+ * how-startup-shutdown-works.txt: Ditto.
+ * include/arpa/nameser.h: Ditto.
+ * include/arpa/nameser_compat.h: Ditto.
+ * include/fenv.h: Ditto.
+ * include/resolv.h: Ditto.
+ * libstdcxx_wrapper.cc: Ditto.
+
+2015-10-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygtls.cc (_cygtls::remove): Call remove_pending_sigs.
+ * cygtls.h (_cygtls::remove_pending_sigs): Declare.
+ * sigproc.cc (pending_signals::clear): Define new method taking a
+ _cygtls pointer argument. Drop pending signals for that thread.
+ (_cygtls::remove_pending_sigs): Call pending_signals::clear for this
+ thread.
+
+2015-10-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * common.din (aligned_alloc): Export.
+ (at_quick_exit): Export.
+ (quick_exit): Export.
+
+2015-10-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * sec_helper.cc (cygsid::get_sid): Don't reject SIDs with missing
+ subauthorities.
+
+2015-10-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * strfuncs.cc (sys_cp_wcstombs): Always return number of multibytes
+ without trailing NUL as the documentation implies. Throughout Cygwin,
+ fix usage to align to this pattern.
+ * fhandler_process.cc (format_process_winexename): Drop trailing NUL
+ and LF from output.
+
+2015-10-21 Corinna Vinschen <corinna@vinschen.de>
+
+ * thread.cc (pthread_getattr_np): Fix memory leak, remove usage of
+ malloc for small local buffer.
+
+2015-10-21 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.cc (symlink_info::check_reparse_point): Don't generate an EIO
+ error if NtFsControlFile returns STATUS_NOT_A_REPARSE_POINT.
+
+2015-09-23 Evgeny Grin <k2k@yandex.ru>
+
+ * fhandler_socket.cc (fhandler_socket::wait_for_events): Fix compiler
+ warning in -O3 case.
+ (fhandler_socket::connect): Ditto.
+ * regex/regcomp.c (singleton): Ditto.
+
+2015-09-08 Corinna Vinschen <corinna@vinschen.de>
+
+ * flock.cc (lockf_t::create_lock_obj_attr): Add buffer parameter.
+ Call _everyone_sd with buffer argument from caller rather than
+ everyone_sd with locally allocated stack buffer.
+ (lockf_t::create_lock_obj): Call create_lock_obj_attr only once
+ outside the loop and with additional buffer argument.
+ (lockf_t::open_lock_obj): Call create_lock_obj_attr with additional
+ buffer argument.
+
+2015-08-29 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_proc.cc (format_proc_cpuinfo): Fetch cache information
+ from new cache functions in sysconf.cc, get_cpu_cache_intel and
+ get_cpu_cache_amd.
+ * sysconf.cc (__nt_query_system): New local helper.
+ (get_nproc_values): Utilize __nt_query_system on pre-Windows 7 systems.
+ Use GetLogicalProcessorInformationEx otherwise to handle more than
+ 64 CPUs. Only handle _SC_NPROCESSORS_CONF and _SC_NPROCESSORS_ONLN.
+ (get_phys_pages): New helper to handle _SC_PHYS_PAGES.
+ (cpuid2_cache_descriptor): New array to map Intel CPUID 2 descriptor
+ values to cache type, cache size, associativity and linesize.
+ (cpuid2_cache_desc_compar): Comparision function for bsearch over
+ cpuid2_cache_descriptor.
+ (get_cpu_cache_intel_cpuid2): New function to fetch cache info from
+ Intel CPUID 2.
+ (get_cpu_cache_intel_cpuid4): Ditto from Intel CPUID 4.
+ (get_cpu_cache_intel): New function as CPU-specific entry point.
+ (assoc): New array to map associativity values from AMD CPUID
+ 0x80000006.
+ (get_cpu_cache_amd): New function to fetch cache info from AMD CPUIDs
+ 0x80000005 and 0x80000006.
+ (get_cpu_cache): New function to fetch cache info.
+ (sca): Call get_phys_pages if _SC_PHYS_PAGES is requested. Call
+ get_cpu_cache for new _SC_* cache requests.
+ (SC_MAX): Set to _SC_LEVEL4_CACHE_LINESIZE.
+ (get_phys_pages(void)): Call get_phys_pages(int).
+ * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
+
+2015-08-27 Corinna Vinschen <corinna@vinschen.de>
+
+ * autoload.cc (DiscardVirtualMemory): Import.
+ (PrefetchVirtualMemory): Import.
+ * mmap.cc (posix_madvise): Actually implement POSIX_MADV_WILLNEED
+ utilizing PrefetchVirtualMemory and POSIX_MADV_DONTNEED utilizing
+ DiscardVirtualMemory on systems supporting them.
+ * wincap.h (wincaps::has_broken_prefetchvm): New element.
+ * wincap.cc: Implement above element throughout.
+ (wincapc::init): Make sure has_broken_prefetchvm is only true on
+ W10 under WOW64.
+ * include/cygwin/version.h (CYGWIN_VERSION_DLL_MAJOR): Bump to 2003.
+ (CYGWIN_VERSION_API_MINOR): Reset to 0.
+
+2015-08-26 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_proc.cc (format_proc_cpuinfo): Only fetch group relations,
+ we don't need anything else.
+
+2015-08-25 Corinna Vinschen <corinna@vinschen.de>
+
+ * winsup.h (_WIN32_WINNT): Set to 0x0a00 for Windows 10.
+ (WINVER): Ditto. Remove outdated comment.
+
+2015-08-25 Corinna Vinschen <corinna@vinschen.de>
+
+ * autoload.cc (std_dll_init): Revert using full paths to system DLLs.
+
+2015-08-25 Corinna Vinschen <corinna@vinschen.de>
+
+ * autoload.cc (noload): i686 only: Save and restore $edx when calling
+ SetLastError to avoid clobbering return address stating with Windows 7.
+
+2015-08-25 Corinna Vinschen <corinna@vinschen.de>
+
+ * mmap.cc: Fix a few comments.
+
+2015-08-24 Corinna Vinschen <corinna@vinschen.de>
+
+ * ntdll.h (PROCESSINFOCLASS): Define ProcessDebugFlags.
+ * sigproc.cc (child_info::child_info): Only propagate _CI_STRACED to
+ child if strace is actually tracing child processes.
+
+2015-08-24 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 2.
+
+2015-08-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * netdb.cc (parse_services_line): Convert port number to network byte
+ order.
+
+2015-08-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * exceptions.cc: Drop including ucontext.h.
+
+2015-08-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * grp.cc (internal_getgrfull): Drop asking caches. Explain why.
+ (internal_getgroups): In case we're not utilizing the Windows account
+ DBs, don't call LsaLookupSids but iterate over the group SIDs in the
+ token and call internal_getgrsid for each of them. Explain why.
+
+2015-08-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): Rearrange
+ to fall back to myself uid/gid in case we don't utilize Windows
+ account DBs, just as prior to 1.7.34.
+ * sec_helper.cc (cygpsid::get_id): Disable Samba user/group mapping per
+ RFC2307 if we're not utilizing Windows account DBs.
+ * security.cc (convert_samba_sd): Revert previous patch.
+
+2015-08-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_proc.cc (format_proc_cpuinfo): Handle AMDs providing
+ extended topology info in CPUID leaf 0x8000001e. Fix handling of
+ AMD CPUs providing extended legacy core info in CPUID leaf 0x80000008.
+
+2015-08-17 Orgad Shaneh <orgads@gmail.com>
+
+ * mkglobals_h: Handle CRLF earlier.
+
+2015-08-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_proc.cc (format_proc_cpuinfo): Print cpb and eff_freq_ro
+ power management flags.
+
+2015-08-15 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.cc (fhandler_base_overlapped::raw_write): When performing
+ nonblocking I/O, copy user space data into own buffer. Add longish
+ comment to explain why.
+ * fhandler.h (fhandler_base_overlapped::atomic_write_buf): New member.
+ (fhandler_base_overlapped::fhandler_base_overlapped): Initialize
+ atomic_write_buf.
+ (fhandler_base_overlapped::fhandler_base_overlapped): New destructor,
+ free'ing atomic_write_buf.
+ (fhandler_base_overlapped::copyto): Set atomic_write_buf to NULL in
+ copied fhandler.
+
+2015-08-14 Corinna Vinschen <corinna@vinschen.de>
+
+ * security.cc (convert_samba_sd): Fix copy/paste error in previous
+ patch.
+
+2015-08-14 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): Only try
+ to map user and group info per RFC2307 if account info is fetched
+ from Windows account DB.
+ * security.cc (convert_samba_sd): Ditto.
+
+2015-08-14 Corinna Vinschen <corinna@vinschen.de>
+
+ * security,cc (get_attribute_from_acl): Merge all group perms into
+ user perms if user is member of group.
+
+2015-08-13 Corinna Vinschen <corinna@vinschen.de>
+
+ * autoload.cc (GetLogicalProcessorInformationEx): Import.
+ (SetThreadGroupAffinity): Import.
+ * fhandler_proc.cc (add_size): New macro.
+ (get_msb): New inline function.
+ (mask_bits): Ditto.
+ (format_proc_cpuinfo): Drop handling of old CPUs. Check if we're
+ running on a OS version supporting porcessor groups. If so, use
+ SetThreadGroupAffinity to set thread affinity. Improve cache info
+ to include 3rd level cache on Intel CPUs. Improve multi core info.
+ * wincap.h (wincaps::has_processor_groups): New element.
+ * wincap.cc: Implement above element throughout.
+
+2015-08-10 Corinna Vinschen <corinna@vinschen.de>
+
+ * miscfuncs.cc: Fix comment preceeding x86_64 memset and friends.
+
+2015-08-10 Corinna Vinschen <corinna@vinschen.de>
+
+ * uinfo.cc (cygheap_user::ontherange): Revert previous patch.
+
+2015-08-03 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 1.
+
+2015-07-29 Corinna Vinschen <corinna@vinschen.de>
+
+ * miscfuncs.cc (memset): x86_64 only: Implement in assembler.
+ (memmove,memcpy): x86_64 only: Ditto.
+ (wmemmove,wmemcpy): x86_64 only: Ditto.
+
+2015-07-29 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygtls.h: Include cygtls_padsize.h and define CYGTLS_PADSIZE there.
+ * cygtls_padsize.h: New file. Define CYGTLS_PADSIZE.
+ * environ.cc (parse_options): Fix NULL pointer access.
+ * init.cc (threadfunc_fe): Do not force stack align on x86_64.
+
+2015-07-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * exceptions.cc (__cont_link_context): x86_64: align stack and reserve
+ shadow space for subsequent function calls, otherwise suffer potential
+ buffer overflow.
+
+2015-07-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * uinfo.cc (cygheap_user::ontherange): Ignore $HOME if it's not
+ starting with a slash (aka, absolute POSIX Path).
+
+2015-07-21 Corinna Vinschen <corinna@vinschen.de>
+
+ * common.din (siglongjmp): Export.
+ (sigsetjmp): Export.
+ * gendef: Change formatting of some comments.
+ (sigsetjmp): Implement.
+ (siglongjmp): Implement.
+ (__setjmpex): x86_64 only: Drop entry point.
+ (setjmp): x86_64 only: Store tls stackptr in Frame now, store MXCSR
+ and FPUCW registers in Spare, as MSVCRT does.
+ (longjmp): x86_64 only: Restore tls stackptr from Frame now, restore
+ MXCSR and FPUCW registers from Spare.
+ * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
+
+2015-07-19 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/signal.h (MINSIGSTKSZ): Define as 8K, unconditionally.
+ (SIGSTKSZ): Define as 32K, unconditionally.
+
+2015-07-19 Corinna Vinschen <corinna@vinschen.de>
+
+ * dcrt0.cc (initial_env): Reduce size of local path buffers to
+ PATH_MAX. Allocate debugger_command from process heap.
+ (init_windows_system_directory): Very early initialize new global
+ variable global_progname.
+ * dll_init.cc (dll_list::alloc): Make path buffer static. Explain why.
+ (dll_list::populate_deps): Use tmp_pathbuf for local path buffer.
+ * exceptions.cc (debugger_command): Convert to PWCHAR.
+ (error_start_init): Allocate debugger_command and fill with wide char
+ strings. Only allocate if NULL.
+ (try_to_debug): Just check if debugger_command is a NULL pointer to
+ return. Drop conversion from char to WCHAR and drop local variable
+ dbg_cmd.
+ * globals.cc (global_progname): New global variable to store Windows
+ application path.
+ * pinfo.cc (pinfo_basic::pinfo_basic): Just copy progname over from
+ global_progname.
+ (pinfo::status_exit): Let path_conv create the POSIX path to
+ avoid local buffer.
+ * pseudo_reloc.cc (__report_error): Utilize global_progname, drop local
+ buffer.
+ * smallprint.cc (__small_vsprintf): Just utilize global_progname for
+ %P format specifier.
+ (__small_vswprintf): Ditto.
+ * strace.cc (PROTECT): Change to reflect x being a pointer. Reformat.
+ (CHECK): Ditto. Reformat.
+ (strace::activate): Utilize global_progname, drop local buffer.
+ Fix formatting.
+ (strace::vsprntf): Reduce size of local progname buffer to NAME_MAX.
+ Copy and, if necessary, convert only the last path component to
+ progname.
+ (strace_buf_guard): New muto.
+ (buf): New static pointer.
+ (strace::vprntf): Use buf under strace_buf_guard lock only. Allocate
+ buffer space for buf on Windows heap.
+ * wow64.cc (wow64_respawn_process): Utilize global_progname, drop
+ local path buffer.
+
+2015-07-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * gendef: Remove unused 64 bit versions of __sjfault and __ljfault.
+
+2015-07-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * exceptions.cc (makecontext): Rearrange order of initialization and
+ document at great length.
+
+2015-07-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * exceptions.cc (__unwind_single_frame): Define empty macro on i686.
+ (_cygtls::call_signal_handler): Try to make sure signal context makes
+ sense in case we're generating context here. Add comment to explain.
+
+2015-07-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * exceptions.cc (getcontext/x86_64): Drop comment on RtlCaptureContext.
+ (swapcontext/x86_64): Fix comment yet again.
+ (getcontext/i686): Move comment from x86_64 getcontext, slightly
+ rearranged, to preceeding comment.
+
+2015-07-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * exceptions.cc (__unwind_single_frame): Move up in file to be
+ accessible from other places. Move comment to getcontext.
+ (stack_info::walk): Call __unwind_single_frame in 64 bit case. Fix
+ preceeding comment.
+ (myfault_altstack_handler): Call __unwind_single_frame.
+ (getcontext): Give comment from __unwind_single_frame a new home.
+ (swapcontext): Fix comment.
+
+2015-07-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * common.din (getcontext): Export.
+ (makecontext): Export.
+ (setcontext): Export.
+ (swapcontext): Export.
+ * exceptions.cc (__unwind_single_frame): New static functions, 64 bit
+ only.
+ (setcontext): New function.
+ (getcontext): New function.
+ (swapcontext): New function.
+ (__cont_link_context): New function.
+ (makecontext): New function.
+ * include/cygwin/version.h (CYGWIN_VERSION_DLL_MAJOR): Bump to 2002.
+ (CYGWIN_VERSION_API_MINOR): Bump.
+ * include/ucontext.h (getcontext): Add prototype.
+ (setcontext): Ditto.
+ (swapcontext): Ditto.
+ (makecontext): Ditto.
+ * ntdll.h (NtContinue): Ditto.
+
+2015-07-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Document the
+ fact that we forgot to bump for sigaltstack and sethostname.
+
+2015-07-13 Corinna Vinschen <corinna@vinschen.de>
+
+ * exceptions.cc (exception::handle): Reenable code only disabled for
+ debug purposes.
+
+2015-07-07 Corinna Vinschen <corinna@vinschen.de>
+
+ x86_64 only:
+ * cygtls.cc (san::leave): Restore _my_tls.andreas.
+ * cygtls.h (class san): Add _clemente as in 32 bit case. Add ret and
+ frame members.
+ (san::san): Handle _my_tls.andreas as on 32 bit. Take parameter and
+ write it to new member ret. Store current stack pointer in frame.
+ (san::~san): New destructor to restore _my_tls.andreas.
+ (__try): Use __l_except address as parameter to san::san.
+ * dcrt0.cc (dll_crt0_0): Add myfault_altstack_handler as vectored
+ continuation handler.
+ * exception.h (myfault_altstack_handler): Declare.
+ * exceptions.cc (myfault_altstack_handler): New function. Explain what
+ it's good for.
+
+2015-07-07 Corinna Vinschen <corinna@vinschen.de>
+
+ * child_info.h (CURR_CHILD_INFO_MAGIC): Update.
+ (child_info_fork::alloc_stack_hard_way): Drop declaration.
+ * dcrt0.cc (child_info_fork::alloc_stack_hard_way): Fold into
+ child_info_fork::alloc_stack.
+ (getstack): Remove.
+ (child_info_fork::alloc_stack): Simplify check for application-provided
+ stack in "hard way" code. Don't call getstack for each page, just
+ reallocate stack immediately as required.
+
+2015-07-07 Corinna Vinschen <corinna@vinschen.de>
+
+ * fork.cc (frok::parent): Simplify code propagating stack setup to
+ child process. Tweak comments.
+
+2015-07-06 Yaakov Selkowitz <yselkowi@redhat.com>
+
+ * path.cc: Rework basename redefinition handling. Explain why.
+
+2015-07-05 Corinna Vinschen <corinna@vinschen.de>
+
+ * dcrt0.cc (CYGWIN_GUARD): Remove.
+ (child_info_fork::alloc_stack_hard_way): Align stack commit to changes
+ of thread stack setup in CygwinCreateThread.
+
+2015-07-05 Corinna Vinschen <corinna@vinschen.de>
+
+ * miscfuncs.cc (struct pthread_wrapper_arg): Add member guardsize.
+ (pthread_wrapper): Set thread stack guarantee according to guardsize.
+ Tweak assembler code so that $rax/$eax is not required by GCC to
+ prepare the wrapper_arg value.
+ (CygwinCreateThread): Fix deadzone handling. Drop setting a "POSIX"
+ guardpage (aka page w/ PAGE_NOACCESS). Always use Windows guard
+ pages instead. On post-XP systems (providing SetThreadStackGuarantee)
+ always set up stack Windows like with reserved/commited areas and
+ movable guard pages. Only on XP set up stack fully commited if the
+ guardpage size is not the default system guardpage size.
+ Fill out pthread_wrapper_arg::guardsize. Improve comments.
+ * resource.cc: Implement RSTACK_LIMIT Linux-like.
+ (DEFAULT_STACKSIZE): New macro.
+ (DEFAULT_STACKGUARD): Ditto.
+ (rlimit_stack_guard): New muto.
+ (rlimit_stack): New global variable holding current RSTACK_LIMIT values.
+ (__set_rlimit_stack): Set rlimit_stack under lock.
+ (__get_rlimit_stack): Initialize rlimit_stack from executable header
+ and return rlimit_stack values under lock.
+ (get_rlimit_stack): Filtering function to return useful default
+ stacksize from rlimit_stack.rlim_cur value.
+ (getrlimit): Call __get_rlimit_stack in RLIMIT_STACK case.
+ (setrlimit): Call __set_rlimit_stack in RLIMIT_STACK case.
+ * thread.cc (pthread::create): Fetch default stacksize calling
+ get_rlimit_stack.
+ (pthread_attr::pthread_attr): Fetch default guardsize calling
+ wincap.def_guard_page_size.
+ (pthread_attr_getstacksize): Fetch default stacksize calling
+ get_rlimit_stack.
+ * thread.h (PTHREAD_DEFAULT_STACKSIZE): Remove.
+ (PTHREAD_DEFAULT_GUARDSIZE): Remove.
+ (get_rlimit_stack): Declare.
+
+2015-07-05 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_process.cc (heap_info::heap_info): Disable fetching heap info
+ on 64 bit XP/2003. Explain why.
+ * wincap.h (wincaps::has_broken_rtl_query_process_debug_information):
+ New element.
+ * wincap.cc: Implement above element throughout.
+
+2015-07-04 Corinna Vinschen <corinna@vinschen.de>
+
+ * autoload.cc (SetThreadStackGuarantee): Import.
+ * cygtls.h (struct _cygtls): Replace thread_context with a ucontext_t
+ called context.
+ * exceptions.cc (exception::handle): Exit from process via signal_exit
+ in case sig_send returns from handling a stack overflow SIGSEGV.
+ Explain why.
+ (dumpstack_overflow_wrapper): Thread wrapper to create a stackdump
+ from another thread.
+ (signal_exit): Fix argument list to reflect three-arg signal handler.
+ In case we have to create a stackdump for a stack overflow condition,
+ do so from a separate thread. Explain why.
+ (sigpacket::process): Don't run signal_exit on alternate stack.
+ (altstack_wrapper): Wrapper function to do stack correction when
+ calling the signal handler on an alternate stack to handle a stack
+ overflow. Make sure to have lots of comments.
+ (_cygtls::call_signal_handler): Drop local context variable to reduce
+ stack pressure. Use this->context instead. Change inline assembler
+ to call altstack_wrapper.
+ (_cygtls::signal_debugger): Accommodate aforementioned change to
+ struct _cygtls.
+ * tlsoffset.h: Regenerate.
+ * tlsoffset64.h: Regenerate.
+ * wincap.h (wincaps::def_guard_pages): New element.
+ (wincaps::has_set_thread_stack_guarantee): Ditto.
+ * wincap.cc: Implement above elements throughout.
+
+2015-07-01 Corinna Vinschen <corinna@vinschen.de>
+
+ * fork.cc (frok::parent): Set stacktop value based on requested stack
+ pointer value in child. Explain why.
+
+2015-06-30 Corinna Vinschen <corinna@vinschen.de>
+
+ * signal.cc (sigaltstack): Add comment.
+
+2015-06-27 Corinna Vinschen <corinna@vinschen.de>
+
+ * exceptions.cc (_cygtls::call_signal_handler): Drop manipulating
+ thread's ss_flags here. It's not safe against longjmp.
+ * signal.cc (sigaltstack): Check if we're running on the alternate
+ stack and set ss_flags returned in oss to SS_ONSTACK.
+
+2015-06-26 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/signal.h: Revert to define MINSIGSTKSZ and SIGSTKSZ
+ here with bigger values to allow _cygtls to reside on signal stack,
+ should it turn out to be required at one point.
+
+2015-06-26 Corinna Vinschen <corinna@vinschen.de>
+
+ * resource.cc (getrlimit): Fix values returned by RLIMIT_STACK.
+ Explain why this had to be changed.
+
+2015-06-23 Ken Brown <kbrown@cornell.edu>
+
+ * include/cygwin/signal.h (SIGEV_*): Add macros.
+
+2015-06-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * exceptions.cc (_cygtls::call_signal_handler): Drop pushing a register
+ on the original stack, it confuses GCC. Rearrange the assembler code
+ so that $rax/$eax is not used by GCC to prepare an argument value.
+ Use $rax/$eax without saving. Drop clearing $rbp/$epb.
+
+2015-06-21 Corinna Vinschen <corinna@vinschen.de>
+
+ * exceptions.cc (_cygtls::call_signal_handler): Drop subtracting 16
+ bytes from the alternate stack, it's not necessary. Safe all clobbered
+ registers. Safe one on the orignal stack, the others on the alternate
+ stack on both platforms.
+
+2015-06-20 Corinna Vinschen <corinna@vinschen.de>
+
+ * exceptions.cc (_cygtls::call_signal_handler): Implement alternate
+ signal stack handling.
+ * signal.cc (sigaltstack): Add fault handler.
+ * include/cygwin/signal.h: Remove definitions of MINSIGSTKSZ
+ and SIGSTKSZ here.
+
+2015-06-19 Corinna Vinschen <corinna@vinschen.de>
+
+ * common.din (sigaltstack): Export.
+ * cygtls.cc (_cygtls::init_thread): Initialize altstack.
+ * cygtls.h (__tlsstack_t): Rename from __stack_t to distinguish
+ more clearly from stack_t. Accommodate throughout.
+ (_cygtls): Add altstack member.
+ * exceptions.cc (exception::handle): Set SIGSEGV handler to SIG_DFL
+ if we encounter a stack overflow, and no alternate stack has been
+ defined.
+ * include/cygwin/signal.h (MINSIGSTKSZ): Define
+ (SIGSTKSZ): Define.
+ (SA_ONSTACK): Define.
+ * signal.cc (sigaltstack): New function.
+ * tlsoffset.h: Regenerate.
+ * tlsoffset64.h: Ditto.
+
+2015-06-19 Corinna Vinschen <corinna@vinschen.de>
+
+ * exceptions.cc: Minor formatting fixes.
+
+2015-06-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * Makefile.in (install-man): Exclude release subdir from search paths.
+
+2015-06-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * net.cc (sethostname): New function.
+ * common.din (sethostname): Export
+ * include/cygwin/version.h (CYGWIN_VERSION_DLL_MAJOR): Bump to 2001.
+ (CYGWIN_VERSION_DLL_MINOR): Set to 0.
+
+2015-06-15 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_socket.cc (LOCK_EVENTS): Don't enter critical section with
+ invalid mutex handle since then socket has been closed.
+ (UNLOCK_EVENTS): Close critical section.
+ (fhandler_socket::evaluate_events): Handle calling connect on shutdown
+ socket.
+ (fhandler_socket::wait_for_events): Try for pthread_testcancel in case
+ of WAIT_FAILED. Try to come up with a better errno in case we waited
+ on an invalid handle.
+ (fhandler_socket::release_events): Change wsock_mtx and wsock_evt to
+ NULL under lock to avoid accessing invalid handle.
+
+2015-06-15 Corinna Vinschen <corinna@vinschen.de>
+
+ * net.cc (errmap): Handle more Winsock error codes.
+
+2015-06-15 Corinna Vinschen <corinna@vinschen.de>
+
+ * exceptions.cc (_cygtls::call_signal_handler): Disable enforcing
+ SA_RESTART in non-main threads to allow returning with EINTR from
+ system calls.
+
+2015-06-11 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 5.
+
+2015-06-08 Corinna Vinschen <corinna@vinschen.de>
+
+ * pinfo.cc (_pinfo::cwd): Initialize s to avoid comiler warning.
+ (_pinfo::cmdline): Ditto.
+
+2015-06-08 Corinna Vinschen <corinna@vinschen.de>
+
+ * pinfo.cc (_pinfo::root): Fake default root for native processes.
+ (open_commune_proc_parms): New helper function to access process
+ parameter block.
+ (_pinfo::cwd): Fetch missing cwd for native processes from processes
+ parameter block.
+ (_pinfo::cmdline): Ditto for command line.
+
+2015-06-08 Corinna Vinschen <corinna@vinschen.de>
+
+ * pinfo.cc (_pinfo::commune_request): Don't try to send commune
+ requests to non-Cygwin processes.
+
+2015-06-08 Takashi Yano <takashi.yano@nifty.ne.jp>
+
+ * fhandler_tty.cc (fhandler_pty_slave::write): Move causing of SIGHUP
+ into fhandler_pty_master::close().
+ (fhandler_pty_slave::read): Ditto.
+ (fhandler_pty_master::close): Ditto.
+
+2015-06-08 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 4.
+
+2015-06-02 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 3.
+
+2015-05-28 Takashi Yano <takashi.yano@nifty.ne.jp>
+ Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_tty.cc (fhandler_pty_common::close): Don't close output_mutex
+ here. Move into callers.
+ (fhandler_pty_master::close): Use NtQueryObject instead of PeekNamedPipe
+ to detect closing the last master handle.
+
+2015-05-27 Takashi Yano <takashi.yano@nifty.ne.jp>
+
+ * net.cc: Define _NETIOAPI_H_ to accomodate newer w32api.
+
+2015-05-03 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 2.
+
+2015-04-30 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 1.
+
+2015-04-30 Corinna Vinschen <corinna@vinschen.de>
+
+ * security.cc (convert_samba_sd): Fix accidental dropping of all
+ non-Unix User, non-Unix Group accounts.
+
+2015-04-27 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/asm/types.h: Add __s64 and __u64 types.
+
+2015-04-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.cc (path_conv::set_nt_native_path): New function.
+ * path.h (path_conv::set_nt_native_path): Add prototype.
+ * syscall.cc (try_to_bin): Handle moving files to the recycler
+ accessed via a local virtual drive (subst). Fix a problem renaming
+ the file to the unique replacement name on Samba. Align comment.
+
+2015-04-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_tty.cc (fhandler_pty_slave::fch_close_handles): Don't close
+ handles not opened via fhandler_pty_slave::fch_open_handles.
+
+2015-04-22 Takashi Yano <takashi.yano@nifty.ne.jp>
+
+ * fhandler.h (class fhandler_base): Add virtual function
+ get_io_handle_cyg() to get handle from which OPOST-processed output is
+ read on PTY master.
+ (class fhandler_pty_slave): Add variable output_handle_cyg to store a
+ handle to which OPOST-processed output is written. Add two functions,
+ i.e., set_output_handle_cyg() and get_output_handle_cyg(), regarding
+ variable output_handle_cyg. Now, output_handle is used only by native
+ windows program. The data before OPOST-processing is written to
+ output_handle and OPOST-processing is applied in the master-side. For a
+ cygwin process, OPOST-processing is applied in the slave-side, and the
+ data after OPOST-processing is written to output_handle_cyg.
+ (class fhandler_pty_master): Add two variables, i.e., io_handle_cyg and
+ to_master_cyg, to store handles of a pipe through which OPOST-processed
+ output passes. Add pty_master_fwd_thread and function
+ pty_master_fwd_thread() for a thread which applies OPOST-processing
+ and forwards data from io_handle to to_master_cyg. Add function
+ get_io_handle_cyg() regarding variable io_handle_cyg. Now, the pipe
+ between io_handle and to_master are used only by native windows program
+ for applying OPOST-processing in the master-side. For a cygwin process,
+ the pipe between io_handle_cyg and to_master_cyg is used for passing
+ through the data which is applied OPOST-processing in the slave-side.
+ * fhandler_tty.cc (struct pipe_reply): Add member to_master_cyg.
+ (fhandler_pty_master::process_slave_output): Read slave output from
+ io_handle_cyg rather than io_handle.
+ (fhandler_pty_slave::fhandler_pty_salve): Initialize output_handle_cyg.
+ (fhandler_pty_slave::open): Set output_handle_cyg by duplicating handle
+ to_master_cyg on PTY master.
+ (fhandler_pty_slave::close): Close handle output_handle_cyg.
+ (fhandler_pty_slave::write): Write data to output_handle_cyg rather
+ than output_handle.
+ (fhandler_pty_slave::fch_close_handles): Close handle output_handle_cyg.
+ (fhandler_pty_master::fhandler_pty_master): Initialize io_handle_cyg,
+ to_master_cyg and master_fwd_thread.
+ (fhandler_pty_master::cleanup): Clean up to_master_cyg as well.
+ (fhandler_pty_master::close): Print to_master_cyg as well in debug
+ message. Terminate master forwarding thread. Close handles
+ to_master_cyg and io_handle_cyg.
+ (fhandler_pty_master::ioctl): Use io_handle_cyg rather than to_master.
+ (fhandler_pty_master::pty_master_thread): Add code for duplicating
+ handle to_master_cyg.
+ (fhandler_pty_master::pty_master_fwd_thread): New function for a thread
+ to forward OPOST-processed data from io_handle to to_master_cyg. This
+ thread applies OPOST-processing to the output of native windows program.
+ (::pty_master_fwd_thread): Ditto.
+ (fhandler_pty_master::setup): Create a new pipe to pass thruegh OPOST-
+ processed output. Create new thread to forward data from io_handle to
+ to_master_cyg. Set handle to_master_cyg to tty. Print io_handle_cyg as
+ well in debug message. Close handles io_handle_cyg and to_master_cyg in
+ case of error.
+ (fhandler_pty_master::fixup_after_fork): Set handle to_master_cyg to
+ tty. Copy handle to_master_cyg from arch->to_master_cyg.
+ (fhandler_pty_master::fixup_after_exec): Clean up to_master_cyg.
+ * select.cc: Check handle returned by get_io_handle_cyg() rather than
+ get_handle().
+ * tty.h (class tty): Add variable _to_master_cyg to store a handle to
+ which OPOST-processed data is written. Add two functions,
+ to_master_cyg() and set_to_master_cyg(), regarding _to_master_cyg.
+
+2015-04-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.cc (basename): Undefine basename before defining function to
+ avoid type collision with prototype in string.h.
+
+2015-04-21 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/libgen.h: Remove in favor of newlib version.
+
+2015-04-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * uinfo.cc (pwdgrp::fetch_account_from_windows): Always revert SID
+ subauth count after checking for known domain.
+
+2015-04-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * 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.
+
+2015-04-12 Corinna Vinschen <corinna@vinschen.de>
+
+ * shm.cc (shmget): Fetch segment size from server rather than using
+ size argument to accommodate existing segments. Add comment to explain
+ why.
+
+2015-04-10 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/version.h (CYGWIN_VERSION_DLL_MAJOR): Bump to 2000.
+ (CYGWIN_VERSION_DLL_MINOR): Set to 0.
+
+2015-04-04 Jon TURNEY <jon.turney@dronecode.org.uk>
+
+ * exceptions.cc (call_signal_handler): Set mcontext.cr2 to the
+ faulting address.
+
+2015-04-02 Jon TURNEY <jon.turney@dronecode.org.uk>
+
+ * exceptions.cc (call_signal_handler): Only bother to construct
+ the ucontext for signal handlers with SA_SIGINFO set. Set
+ mcontext.oldmask.
+
+2015-04-04 Jon TURNEY <jon.turney@dronecode.org.uk>
+
+ * exceptions.cc (call_signal_handler): Zero initialize context and set
+ context flags, as RlCaptureContext doesn't.
+
+2015-04-09 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_dsp.cc (fhandler_dev_dsp::open): Call open_null.
+
+2015-04-08 Corinna Vinschen <corinna@vinschen.de>
+
+ * pwdgrp.h (sidfromuid): New inline function.
+ (sidfromgid): Ditto.
+ * fhandler_disk_file.cc (fhandler_disk_file::fchown): Use sidfromuid.
+ * quotactl.cc (quotactl): Use sidfromuid and sidfromgid.
+
+2015-04-08 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cyggwin/acl.h (struct __acl16): Move from here...
+ * sec_acl.cc: ...to here.
+
+2015-04-07 Corinna Vinschen <corinna@vinschen.de>
+
+ * tty.h (class tty): Remove unused 32/64 bit interoperability
+ considerations.
+
+2015-04-07 Corinna Vinschen <corinna@vinschen.de>
+
+ * tty.h (NTTYS): Raise to 128.
+ * devices.in: Change pty, ptym, and cons expressions accordingly.
+ * devices.cc: Regenerate.
+
+2015-04-04 Jon TURNEY <jon.turney@dronecode.org.uk>
+
+ * Makefile.in : Remove setting -fomit-frame-pointer for compiling
+ various files, it is already the default. Set
+ -fno-omit-frame-pointer for exceptions.cc on x86.
+
+2015-04-03 Takashi Yano <takashi.yano@nifty.ne.jp>
+
+ * fhandler_tty.cc (fhandler_pty_slave::read): Change calculation of
+ "readlen" not to use "bytes_in_pipe" value directly.
+
+2015-04-02 Jon TURNEY <jon.turney@dronecode.org.uk>
+
+ * include/cygwin/signal.h (struct __mcontext): 16-byte align.
+ * include/sys/ucontext.h (ucontext_t): Ditto.
+
+2015-04-01 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/types.h: Include sys/_stdint.h rather than stdint.h.
+ * include/stdint.h: Drop in favor of newlib version.
+ * include/inttypes.h: Ditto.
+
+2015-04-01 Jon TURNEY <jon.turney@dronecode.org.uk>
+
+ * include/sys/ucontext.h : New header.
+ * include/ucontext.h : Ditto.
+ * exceptions.cc (call_signal_handler): Provide ucontext_t
+ parameter to signal handler function.
+
+2015-04-01 Jon TURNEY <jon.turney@dronecode.org.uk>
+
+ * external.cc (cygwin_internal): Add operation to retrieve a copy
+ of the EXCEPTION_RECORD from a siginfo_t *.
+ * include/sys/cygwin.h (cygwin_getinfo_types): Ditto.
+ * exception.h (cygwin_exception): Add exception_record accessor.
+
+2015-04-01 Jon TURNEY <jon.turney@dronecode.org.uk>
+
+ * include/cygwin/signal.h : Rename struct ucontext to struct
+ __mcontext. Fix layout differences from the Win32 API CONTEXT
+ type. Remove unused member _internal. Rename member which
+ corresponds to ContextFlags. Add cr2 member.
+
+2015-04-01 Corinna Vinschen <corinna@vinschen.de>
+
+ * grp.cc (internal_getgroups): Handle negative domain index to avoid
+ crashes.
+
+2015-03-31 Renato Silva <br.renatosilva@gmail.com>
+
+ * net.cc (cygwin_gethostname): Fix buffer size error handling.
+
+2015-03-31 Corinna Vinschen <corinna@vinschen.de>
+
+ * uinfo.cc (pwdgrp::fetch_account_from_windows): Don't allow fully
+ qualified Windows account names (domain\user or user@domain).
+
+2015-03-31 Corinna Vinschen <corinna@vinschen.de>
+
+ * localtime.cc (tzset_unlocked): Export as _tzset_unlocked.
+
+2015-03-30 Yaakov Selkowitz <yselkowi@redhat.com>
+
+ * common.din (__gnu_basename): Export.
+ * path.cc (__gnu_basename): New function.
+
+2015-03-30 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygheap.h (cygheap_domain_info::add_domain): Add prototype.
+ * uinfo.cc (cygheap_domain_info::add_domain): New method.
+ (pwdgrp::fetch_account_from_windows): Try to add domain explicitely
+ if it was not in the original list of trusted domains and go ahead
+ rather than bailing out. Add comment to explain why.
+
+2015-03-30 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygtls.h (struct _cygtls): Convert thread_context to type CONTEXT.
+ * exceptions.cc (_cygtls::signal_debugger): Use sizeof (CONTEXT) for
+ size of CONTEXT copied for GDB's digestion.
+ * include/cygwin/signal.h: Add a preliminary comment.
+
+2015-03-25 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/sys/termios.h: Add CMIN and CTIME.
+ * fhandler_termios.cc (fhandler_termios::tcinit): Use CMIN and CTIME.
+
+2015-03-25 Takashi Yano <takashi.yano@nifty.ne.jp>
+
+ * tty.h (class tty_min): Remove variable "write_error" to which any
+ errors are not currently set at anywhere.
+ (class tty): Add variable "column" for handling ONOCR.
+ * tty.cc (tty::init): Add initialization code for variable "column".
+ * fhandler.h (class fhandler_pty_master): Remove variable "need_nl"
+ which is not necessary any more. "need_nl" was needed by OPOST process
+ in fhandler_pty_master::process_slave_output().
+ (class fhandler_pty_common): Add function process_opost_output() for
+ handling post processing for OPOST in write process.
+ * fhandler_tty.cc (fhandler_pty_master::process_slave_output): Count
+ TIOCPKT control byte into length to be read in TIOCPKT mode. Move
+ post processing for OPOST to write process. Remove code related to
+ variable "write_error". Return with EIO error if slave is already
+ closed.
+ (fhandler_pty_master::fhandler_pty_master): Remove initialization
+ code for variable "need_nl".
+ (fhandler_pty_common::process_opost_output): Add this function for
+ handling of OPOST in write process. Add code to avoid blocking in
+ non-blocking mode when output is suspended by ^S.
+ (fhandler_pty_slave::write): Call fhandler_pty_common::
+ process_opost_output() instead of WriteFile(). Remove code related to
+ variable "write_error".
+ (fhandler_pty_master::doecho): Call fhandler_pty_common::
+ process_opost_output() instead of WriteFile().
+ * select.cc (peek_pipe): Remove code related to variable "need_nl".
+
+2015-03-24 Corinna Vinschen <corinna@vinschen.de>
+
+ Per glibc BZ #15366:
+ * inttypes.h: Drop __STDC_FORMAT_MACROS consideration.
+ * stdint.h: Drop __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS
+ consideration.
+
+2015-03-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/_types.h: Drop unused file.
+
+2015-03-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * grp.cc (pwdgrp::parse_group): Call cygsid::getfromgr_passwd.
+ * passwd.cc (pwdgrp::parse_passwd): Call cygsid::getfrompw_gecos.
+ * pwdgrp.h (cygsid::getfrompw): Implement as inline method here,
+ accessing pg_pwd's sid member directly.
+ (cygsid::getfromgr): Implement as inline method here, accessing
+ pg_grp's sid member directly.
+ * sec_auth.cc (extract_nt_dom_user): Call cygsid::getfrompw_gecos.
+ Explain why.
+ * sec_helper.cc (cygsid::getfrompw): Drop implementation.
+ (cygsid::getfromgr): Ditto.
+ * security.h (cygsid::getfrompw_gecos): Implement former getfrompw
+ inline here.
+ (cygsid::getfromgr_passwd): Implement former getfromgr inline here.
+
+2015-03-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * sec_auth.cc (get_server_groups): Drop unused passwd argument. Adjust
+ calls throughout.
+ (get_initgroups_sidlist): Ditto.
+ (get_setgroups_sidlist): Ditto.
+ (create_token): Ditto.
+ (lsaauth): Ditto.
+ * security.h (create_token): Adjust prototype to above change.
+ (lsaauth): Ditto.
+ (get_server_groups): Ditto.
+ * grp.cc (get_groups): Adjust call to get_server_groups.
+ * syscalls.cc (seteuid32): Adjust calls to lsaauth and create_token.
+
+2015-03-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * grp.cc (internal_getgroups): Drop unused timeout parameter.
+ * pwdgrp.h (internal_getgroups): Ditto in prototype.
+ * uinfo.cc (internal_getlogin): Ditto in usage.
+
+2015-03-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * spawn.cc (find_exec): Fix a name change in case of a symlink which
+ can be opened as is.
+
+2015-03-12 Jon TURNEY <jon.turney@dronecode.org.uk>
+
+ * exceptions.cc (stack_info): Add sigstackptr member.
+ (walk): Unwind sigstackptr inside _sigbe and sigdelayed.
+ * gendef (_sigdelayed_end): Add symbol to mark end of sigdelayed.
+
+2015-03-13 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/sys_time.h: Remove. Definitions moved to newlib's
+ sys/time.h.
+
+2015-03-13 Alexey Pavlov <alexpux@gmail.com>
+
+ * net.cc (in6addr_any): Remove redundant braces.
+ (in6addr_loopback): Ditto.
+
+2015-03-12 Alexey Pavlov <alexpux@gmail.com>
+
+ * include/cygwin/version.h: Fix typo.
+
+2015-03-12 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_socket.cc: Drop defining _BSDTYPES_DEFINED before including
+ winsup.h.
+
+2015-03-12 Takashi Yano <takashi.yano@nifty.ne.jp>
+
+ * fhandler_tty.cc (fhandler_pty_master::close): Add code to make slave
+ detect closure of master. Fix typo in error message.
+
+2015-03-11 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/types.h: Include <sys/_timespec.h>
+
+2015-03-11 Corinna Vinschen <corinna@vinschen.de>
+
+ * autoload.cc (CreateEnvironmentBlock): Make loading non-fatal.
+
+2015-03-11 Corinna Vinschen <corinna@vinschen.de>
+
+ * autoload.cc (std_dll_init): Fix condition for breaking from DLL
+ loading loop.
+
+2015-03-10 Yaakov Selkowitz <yselkowitz@cygwin.com>
+
+ * include/stdint.h: Fix __x86_64__ conditional.
+
+2015-03-05 Corinna Vinschen <corinna@vinschen.de>
+
+ * tty.h (tty::set_master_ctl_closed): Rename from set_master_closed.
+ (tty::is_master_closed): Drop method.
+ * fhandler_tty.cc (fhandler_pty_slave::open): Remove code prematurely
+ bailing out if master control thread is not running.
+ (fhandler_pty_slave::read): Don't generate SIGHUP if master control
+ thread is not running.
+ (fhandler_pty_master::close): Rearrange code to avoid stopping master
+ control thread twice in multi-threaded scenarios.
+
+2015-03-05 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (fhandler_base::get_echo_handle): New virtual method.
+ (class fhandler_pty_master): Add echo_r and echo_w handles constituting
+ read and write side of new echo pipe.
+ * select.cc (peek_pipe): On pty masters, check additionally if input
+ from the echo pipe is available.
+ * fhandler_tty.cc (fhandler_pty_master::doecho): Drop output_mutex
+ locking. Write output to echo pipe.
+ (fhandler_pty_master::process_slave_output): Check if input is available
+ in echo pipe and prefer to read from it, if so.
+ (fhandler_pty_slave::write): Drop output_mutex locking.
+ (fhandler_pty_master::fhandler_pty_master): Initialize echo pipe
+ handles to NULL.
+ (fhandler_pty_master::close): Close and NULL echo pipe handles.
+ (fhandler_pty_master::setup): Create echo pipe, close in case of error.
+
+2015-03-04 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 36.
+
+2015-03-03 Corinna Vinschen <corinna@vinschen.de>
+
+ * msg.cc: Throughout, drop raising SIGSYS if cygserver is not running.
+ * sem.cc: Ditto.
+ * shm.cc: Ditto.
+
+2015-03-03 Corinna Vinschen <corinna@vinschen.de>
+
+ * common.din (issetugid): Export.
+ * glob.cc (issetugid): Drop macro.
+ * sec_auth.cc (issetugid): New exported function.
+ * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
+
+2015-03-02 Corinna Vinschen <corinna@vinschen.de>
+
+ * security.cc (get_attribute_from_acl): Don't spill Everyone permissions
+ into group permissions if owner SID == group SID.
+ (alloc_sd): Add parenthesis for clarity.
+
+2015-02-28 Corinna Vinschen <corinna@vinschen.de>
+
+ * uinfo.cc (pwdgrp::add_line): Return NULL if parsing a line failed.
+ (pwdgrp::add_account_post_fetch): Check return value from add_line and
+ return NULL if add_line returns NULL.
+
+2015-02-27 Corinna Vinschen <corinna@vinschen.de>
+
+ * security.cc (alloc_sd): For directories, mark inherited ACEs
+ inheritable to better follow POSIX 1003.1e rules.
+
+2015-02-27 Corinna Vinschen <corinna@vinschen.de>
+
+ * sec_acl.cc (getacl): Add mask even if all group and secondary account
+ permissions are 0.
+
+2015-02-27 Corinna Vinschen <corinna@vinschen.de>
+
+ * uinfo.cc (pwdgrp::fetch_account_from_windows): Drop redundant test
+ for SidTypeUser.
+
+2015-02-27 Corinna Vinschen <corinna@vinschen.de>
+
+ * sec_acl.cc (setacl): Fix bug which leads to ACE duplication in
+ case owner SID == group SID.
+ (getacl): Reverse order of SID test against group or owner sid to
+ prefer owner attributes over group attributes. Disable setting group
+ permissions equivalent to owner permissions if owner == group. Add
+ comment to explain why. Fix indentation.
+ * security.cc (get_attribute_from_acl): Change type of local variables
+ containing permission to mode_t. Apply deny mask to group if group SID
+ == owner SID to avoid Everyone permissions to spill over into group
+ permissions. Disable setting group permissions equivalent to owner
+ permissions if owner == group. Add comment to explain why.
+ * uinfo.cc (pwdgrp::fetch_account_from_windows): Allow user SID as
+ group account if user is a "Microsoft Account". Explain why. Drop
+ workaround enforcing primary group "Users" for "Microsoft Accounts".
+
+2015-02-26 Corinna Vinschen <corinna@vinschen.de>
+
+ * ldap.cc (cyg_ldap::wait): Call cygwait with cw_infinite timeout value
+ and with cw_sig_restart instead of cw_sig_eintr. Drop useless
+ _my_tls.call_signal_handler call. Return EIO if cygwait failed.
+
+2015-02-26 Corinna Vinschen <corinna@vinschen.de>
+
+ * posix_ipc.cc (ipc_mutex_lock): Revert unneeded call to signal handler.
+
+2015-02-26 Corinna Vinschen <corinna@vinschen.de>
+
+ * posix_ipc.cc (ipc_mutex_lock): Add bool parameter to influence if
+ cygwait should be in EINTR or in restart mode. Call signal handler
+ if in EINTR mode.
+ (mq_getattr): Call ipc_mutex_lock in restart mode.
+ (mq_setattr): Ditto.
+ (mq_notify): Ditto.
+ (_mq_send): Call ipc_mutex_lock in EINTR mode.
+ (_mq_receive): Ditto.
+
+2015-02-26 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_termios.cc (fhandler_termios::line_edit): Fix condition
+ for writing remaining bytes in readahead buffer in non-canonical mode.
+
+2015-02-25 Corinna Vinschen <corinna@vinschen.de>
+
+ * sec_acl.cc (setacl): Always grant default owner entry
+ STANDARD_RIGHTS_ALL and FILE_WRITE_ATTRIBUTES access, too.
+
+2015-02-25 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_tape.cc (fhandler_dev_tape::_lock): Add cw_sig_restart to
+ cygwait call.
+ * thread.cc (pthread_mutex::lock): Ditto.
+ (semaphore::_timedwait): Fix formatting.
+ (semaphore::_wait): Ditto.
+ * thread.h (fast_mutex::lock): Ditto.
+
+2015-02-25 Corinna Vinschen <corinna@vinschen.de>
+
+ * security.cc (alloc_sd): Don't apply temporary workaround for chmod
+ to DEF_USER_OBJ, DEF_GROUP_OBJ, and DEF_OTHER_OBJ ACEs.
+
+2015-02-25 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_tty.cc (fhandler_pty_slave::read): Having no input is not an
+ error condition for tcflush.
+
+2015-02-25 Corinna Vinschen <corinna@vinschen.de>
+
+ * security.cc (alloc_sd): Fix comment style. Remove code unused for
+ years.
+
+2015-02-25 Corinna Vinschen <corinna@vinschen.de>
+
+ * security.cc (alloc_sd): Add temporary workaround which disallows
+ any secondary user to have more permissions than the primary group
+ in calls to chmod. Add comment to explain why.
+
+2015-02-25 Corinna Vinschen <corinna@vinschen.de>
+
+ * uinfo.cc (client_request_pwdgrp::client_request_pwdgrp): Add missing
+ break in switch statement.
+
+2015-02-24 Corinna Vinschen <corinna@vinschen.de>
+
+ * ldap.h: Remove index macros.
+ (class cyg_ldap): Remove members srch_msg and srch_entry.
+ (cyg_ldap::get_string_attribute): Remove private method taking index
+ argument.
+ (cyg_ldap::get_num_attribute): Ditto. Add method taking attribute name.
+ (cyg_ldap::get_primary_gid): Adjust to aforementioned change.
+ (cyg_ldap::get_unix_uid): Ditto.
+ (cyg_ldap::get_unix_gid): Ditto.
+ * ldap.cc: Throughout, use msg and entry in place of srch_msg and
+ srch_entry.
+ (std_user_attr): Add sAMAccountName and objectSid.
+ (group_attr): Ditto.
+ (cyg_ldap::close): Drop handling of srch_msg and srch_entry.
+ (cyg_ldap::get_string_attribute): Move earlier in file.
+ (cyg_ldap::get_num_attribute): Ditto.
+ (cyg_ldap::enumerate_ad_accounts): Add comments for clarity.
+ Use group_attr or user_attr rather than sid_attr to fetch all desired
+ attributes for an account right away.
+ (cyg_ldap::next_account): Store found SID in last_fetched_sid to
+ skip calls to fetch_ad_account from fetch_account_from_windows.
+ (cyg_ldap::get_string_attribute): Remove method taking index argument.
+ (cyg_ldap::get_num_attribute): Ditto.
+ * pwdgrp.h (class pg_ent): Fix formatting. Add member dom.
+ * passwd.cc (pg_ent::enumerate_ad): Store current flat domain name
+ in dom. Construct fetch_acc_t argument from LDAP attributes and
+ call fetch_account_from_windows with that.
+ * userinfo.h (enum fetch_user_arg_type_t): Rename FULL_grp_arg to
+ FULL_acc_arg. Change throughout.
+ (struct fetch_acc_t): Rename from fetch_full_grp_t. Change throughout.
+ (struct fetch_user_arg_t): Rename full_grp to full_acc. Change
+ throughout.
+
+2015-02-24 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (class fhandler_base): Add was_nonblocking status flag.
+ * fhandler.cc (fhandler_base::set_flags): Set was_nonblocking if the
+ O_NONBLOCK flag has been specified.
+ (fhandler_base_overlapped::close): Check for was_nonblocking instead
+ of for is_nonblocking. Explain why.
+ (fhandler_base::set_nonblocking): Set was_nonblocking if noblocking
+ mode gets enabled.
+
+2015-02-24 Ken Brown <kbrown@cornell.edu>
+
+ * include/sys/socket.h (sockatmark): Add prototype.
+
+2015-02-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * userinfo.h (struct fetch_full_grp_t): Define only when building
+ Cygwin itself.
+ (struct fetch_user_arg_t): Ditto.
+
+2015-02-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * autoload.cc (LsaLookupSids): Import.
+ * cygserver_pwdgrp.h: Include userinfo.h. Drop workaround defining
+ fetch_user_arg_type_t locally.
+ * grp.cc (internal_getgrsid_cachedonly): New function.
+ (internal_getgrfull): Ditto.
+ (internal_getgroups): Rearrange function. Center around fetching all
+ cached group info first, calling LsaLookupSids on all so far non-cached
+ groups second. Pass all available info to new internal_getgrfull call.
+ * pwdgrp.h: Include userinfo.h. Move definitions of
+ fetch_user_arg_type_t and fetch_user_arg_t there.
+ (pwdgrp::add_group_from_windows): Declare with getting full group info.
+ Called from internal_getgrfull.
+ * uinfo.cc (pwdgrp::add_group_from_windows): Define.
+ (pwdgrp::fetch_account_from_line): Add default case.
+ (pwdgrp::fetch_account_from_file): Ditto.
+ (pwdgrp::fetch_account_from_windows): Handle FULL_grp_arg.
+ (client_request_pwdgrp::client_request_pwdgrp): Add default case.
+ * userinfo.h: New header.
+ (enum fetch_user_arg_type_t): Add FULL_grp_arg.
+ (struct fetch_full_grp_t): New datatype.
+
+2015-02-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * grp.cc (internal_getgroups): Check for group attributes and
+ Everyone sid before calling internal_getgrsid.
+
+2015-02-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygwait.h (enum cw_wait_mask): Add cw_sig_restart. Add comments
+ to explain the meaning of the possible values.
+ * cygwait.cc (is_cw_sig_restart): Define.
+ (is_cw_sig_handle): Check for cw_sig_restart as well.
+ (cygwait): Restart always if cw_sig_restart is set.
+ * thread.cc (pthread::join): Call cygwait with cw_sig_restart flag
+ to avoid having to handle signals at all.
+
+2015-02-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygwait.cc (cygwait): Move setting res to WAIT_SIGNALED to clarify
+ when WAIT_SIGNALED is returned to the caller.
+
+2015-02-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * winsup.h (SIGTOMASK): Add cast to sigset_t to avoid int overflow.
+
+2015-02-20 Corinna Vinschen <corinna@vinschen.de>
+
+ * grp.cc (internal_getgroups): Take additional timeout_ns parameter.
+ Restrict fetching group account entries from user token groups by
+ timeout_ns 100ns-intervals. Add preceding comment to explain why.
+ * pwdgrp.h (internal_getgroups): Align prototype.
+ * times.cc (GetTickCount_ns): New function.
+ * uinfo.cc (internal_getlogin): Call internal_getgroups wih 300ms
+ timeout.
+ * winsup.h (GetTickCount_ns): Declare.
+
+2015-02-19 Jon TURNEY <jon.turney@dronecode.org.uk>
+
+ * Makefile.in (sigfe.o): Use CFLAGS.
+
+2015-02-19 Jon TURNEY <jon.turney@dronecode.org.uk>
+
+ * include/cygwin/stdlib.h (initstate, random, setstate, srandom):
+ Check if __XSI_VISIBLE is set by sys/cdefs.h, rather than testing
+ for _XOPEN_SOURCE directly, to work correctly when _GNU_SOURCE is
+ set.
+
+2015-02-19 Corinna Vinschen <corinna@vinschen.de>
+
+ * sec_acl.cc (setacl): Always grant owner FILE_WRITE_ATTRIBUTES access.
+
+2015-02-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * ldap.cc (struct cyg_ldap_search): Add scope member.
+ (cyg_ldap::search_s): Add parameter scope. Use as LDAP search scope
+ instead of fixed LDAP_SCOPE_SUBTREE scope.
+ (ldap_search_thr): Call cyg_ldap::search_s with scope from argument.
+ (cyg_ldap::search): Add parameter scope and fill in to cyg_ldap_search.
+ (cyg_ldap::fetch_ad_account): Call search with LDAP_SCOPE_SUBTREE scope.
+ (cyg_ldap::fetch_posix_offset_for_domain): Call search with
+ LDAP_SCOPE_ONELEVEL scope.
+ (cyg_ldap::fetch_unix_sid_from_ad): Call search with LDAP_SCOPE_SUBTREE
+ scope.
+ (cyg_ldap::fetch_unix_name_from_rfc2307): Ditto.
+ * ldap.h (cyg_ldap::search): Align prototype to above change.
+ (cyg_ldap::search_s): Ditto.
+
+2015-02-18 Corinna Vinschen <corinna@vinschen.de>
+
+ * ldap.cc: Macro-ize filter expressions. Use throughout to compute
+ required filter buffer size if filter is a local buffer.
+
+2015-02-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * ldap.cc (cyg_ldap::fetch_posix_offset_for_domain): Drop stray
+ system_printf.
+
+2015-02-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * ldap.h (class cyg_ldap): Rename rootdse to def_context. Change
+ throughout.
+ * ldap.cc (cyg_ldap::open): Fix debug output.
+ (cyg_ldap::fetch_ad_account): Rename rdse to base. Restrict LDAP
+ query to users and groups only.
+ (cyg_ldap::enumerate_ad_accounts): Rearrange filter expression for
+ user accounts.
+ (SYSTEM_CONTAINER): New macro.
+ (cyg_ldap::fetch_posix_offset_for_domain): Set base in LDAP search
+ to the "System" container in the default naming context to restrict
+ the search scope.
+ (cyg_ldap::fetch_unix_sid_from_ad): Add objectCategory=Person to
+ search filter for users.
+
+2015-02-16 Corinna Vinschen <corinna@vinschen.de>
+
+ * spawn.cc (find_exec): Extend preceeding comment to explain more
+ detailed what's going on in this function. Overwrite potential symlink
+ target with original path.
+
+2015-02-15 Corinna Vinschen <corinna@vinschen.de>
+
+ * i686.din (__mempcpy): Move symbol export from here...
+ * common.din (__mempcpy): ... to here.
+
+2015-02-14 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.h (path_conv): Make path_flags private. Rename known_suffix to
+ suffix and make private. Rename normalized_path to posix_path and
+ make privtae. Accommodate name changes throughout in path_conv
+ methods.
+ (path_conv::known_suffix): New method. Use throughout instead of
+ accessing suffix directly.
+ (path_conv::get_win32): Constify.
+ (path_conv::get_posix): New method to read posix_path. Use throughout
+ instead of accessing normalized_path directly.
+ (path_conv::set_posix): Rename from set_normalized_path. Accommodate
+ name change throughout.
+
+ * spawn.cc (find_exec): Return POSIX path, not Win32 path.
+
+2015-02-12 Corinna Vinschen <corinna@vinschen.de>
+
+ * sec_acl.cc (setacl): Introduce bool array "invalid" to note the
+ invalidation of incoming acl entries while iterating over them.
+
+2015-02-12 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygheap.h (cygheap_pwdgrp::get_home): Add dnsdomain parameter to
+ declaration in ldap-related method.
+ (cygheap_pwdgrp::get_shell): Ditto.
+ (cygheap_pwdgrp::get_gecos): Ditto.
+ * ldap.cc (cyg_ldap::open): Use NO_ERROR instead of 0.
+ (cyg_ldap::close): Reset last_fetched_sid.
+ (cyg_ldap::fetch_ad_account): Return immediately if sid is the same as
+ last_fetched_sid. Open LDAP connection from here. Move initialization
+ of rdse after open call. Set last_fetched_sid if LDAP call was
+ successful.
+ * ldap.h (class cyg_ldap): Add member last_fetched_sid.
+ (cyg_ldap::cyg_ldap): Initialize last_fetched_sid.
+ (cyg_ldap::is_open): New inline method.
+ * uinfo.cc (cygheap_pwdgrp::init): Drop initialization of db_home,
+ db_shell and db_gecos with "cygwin desc", thus only using the fallback
+ by default.
+ (fetch_windows_home): Add parameter dnsdomain. Call
+ cyg_ldap::fetch_ad_account if required.
+ (fetch_from_path): Add parameter dnsdomain. Call fetch_windows_home
+ accordingly.
+ (cygheap_pwdgrp::get_home): Accomodate call to fetch_windows_home.
+ Add dnsdomain parameter in ldap-related method. Call
+ cyg_ldap::fetch_ad_account if required.
+ (cygheap_pwdgrp::get_shell): Ditto.
+ (cygheap_pwdgrp::get_gecos): Ditto.
+ (pwdgrp::fetch_account_from_windows): Drop cyg_ldap::open call prior to
+ cyg_ldap::fetch_ad_account call. Set is_current_user to true if we're
+ handling the current user account. Make sure to perform the LDAP calls
+ only for users, and only if required.
+
+2015-02-11 Corinna Vinschen <corinna@vinschen.de>
+
+ * flock.cc (fhandler_base::lock): Convert accidental system_printf to
+ debug_printf in case of non-matching file modes. Clear up debug output.
+
+2015-02-11 Corinna Vinschen <corinna@vinschen.de>
+
+ * dlfcn.cc (check_path_access): Drop FE_NATIVE from find_exec call.
+ (gfpod_helper): Drop equality sign from environment variable name
+ in call to check_path_access.
+ * exec.cc (execlp): Drop equality sign from environment variable name
+ in call to find_exec.
+ (execvp): Ditto.
+ (execvpe): Ditto.
+ * path.h (enum fe_types): Drop FE_NATIVE.
+ (find_exec): Rename third paramter in declaration from search. Drop
+ equality sign from default value.
+ * spawn.cc (perhaps_suffix): Add PC_POSIX to path_conv::check call.
+ (find_exec): Simplify function. Iterate over POSIX pathlist rather
+ than Windows pathlist. Drop handling of FE_NATIVE flag. Always fill
+ posix path of incoming path_conv buf, unless FE_NNF flag is given.
+ (av::setup): Drop equality sign from environment variable name
+ in call to find_exec. Call unshift with normalized_path.
+ * winf.cc (av::unshift): Drop conv parameter and code converting
+ Windows to POSIX path.
+ * winf.h (av::unshift): Accommodate prototype.
+
+2015-02-10 Corinna Vinschen <corinna@vinschen.de>
+
+ * syscalls.cc (fhandler_base::stat_fixup): Generate unique inode number
+ for /dev/tty under all circumstances. Add to comment.
+
+2015-02-06 Corinna Vinschen <corinna@vinschen.de>
+
+ * common.din: Export cabsl, cimagl, creall, finitel, hypotl, sqrtl.
+ * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
+
+2015-02-06 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 35.
+
+2015-02-06 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_proc.cc (format_proc_cpuinfo): Enable multi-core fields
+ on Intel CPUs.
+
+2015-02-04 Corinna Vinschen <corinna@vinschen.de>
+
+ * common.din (wcstold): Export.
+ * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
+
+2015-02-03 Corinna Vinschen <corinna@vinschen.de>
+
+ * mkvers.sh: Automate generating the copyright date in the version
+ resource.
+ * winver.rc: Ditto.
+
+2015-01-28 Corinna Vinschen <corinna@vinschen.de>
+
+ * Makefile.in (VERSION_OFILES): New variable containing object files
+ with version information. Use throughout.
+ (clean): Drop winver_stamp.
+ (version.cc winver.o): Drop empty rule.
+ (winver_stamp): Convert to rule targeting version.cc and winver.o
+ directly. Drop touching winver_stamp. Fix typo.
+
+2015-01-24 Corinna Vinschen <corinna@vinschen.de>
+
+ * uname.cc (uname): Shorten "WOW64" to "WOW" to account for the new
+ Windows 10 OS version "10.0" starting with preview build 9926.
+
+2015-01-23 Pierre A. Humblet <pierre@phumblet.no-ip.org>
+
+ * net.cc (cygwin_inet_pton): Declare.
+ (gethostby_specials): New function.
+ (gethostby_helper): Change returned addrtype in 4-to-6 case.
+ (gethostbyname2): Call gethostby_specials.
+
+2015-01-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (class fhandler_process): Add fd_type member.
+ * fhandler_process.cc (process_tab): Fix indentation.
+ (fhandler_process::exists): Rely on format_process_fd returning file
+ type in fd_type.
+ (struct process_fd_t): Add fd_type member.
+ (fhandler_process::fill_filebuf): Allow format_process_fd to set
+ this->fd_type member.
+ (format_process_fd): Fix path evaluation to allow recognizing trailing
+ path components. Fix check for file descriptor path component. Return
+ virt_symlink in fd_type if no trailing path compenents exist, return
+ virt_fsdir otherwise and copy full resulting path into destbuf.
+ * path.cc (path_conv::check): If /proc/$PID/fd symlink has trailing
+ path components, reparse resulting path as if it's the incoming path.
+ Add comment to wail over the outdated and hackish check method, and to
+ explain what we do here.
+
+2015-01-21 Corinna Vinschen <corinna@vinschen.de>
+
+ * uinfo.cc (pwdgrp::fetch_account_from_windows): Allow fetching gid,
+ home, shell and gecos info from NT4 domain.
+
+2015-01-21 Corinna Vinschen <corinna@vinschen.de>
+
+ * sec_auth.cc (get_logon_server): Constify domain parameter.
+ * security.h (get_logon_server): Same in prototype.
+
+2015-01-20 Corinna Vinschen <corinna@vinschen.de>
+
+ * common.din (sockatmark): Export.
+ * net.cc (sockatmark): New function.
+ * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
+
+2015-01-19 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygserver_ipc.h (ipc_retval): Add default constructor.
+ (class thread): struct->class. Add prototypes for new private methods
+ dup_signal_arrived and close_signal_arrived. Implement constructor and
+ destructor.
+
+2015-01-16 Marco Atzeri <marco.atzeri@gmail.com>
+ Corinna Vinschen <corinna@vinschen.de>
+
+ * gendef: Export _sigbe on 64 bit as well.
+ * malloc_wrapper.cc (free): In malloc_printf, call caller_return_address
+ instead of __builtin_return_address.
+ (malloc): Ditto.
+ (realloc): Ditto.
+ (calloc): Ditto.
+ * miscfuncs.cc (__caller_return_address): New function.
+ * miscfuncs.h (caller_return_address): New macro calling
+ __caller_return_address.
+ (__caller_return_address): Add prototype.
+
+2015-01-14 Corinna Vinschen <corinna@vinschen.de>
+
+ * uinfo.cc (fetch_windows_home): Disable fetching from homeDrive or
+ usri3_home_dir_drive. Add comment.
+
+2015-01-14 Corinna Vinschen <corinna@vinschen.de>
+
+ * environ.cc (renv_arr): Drop variables not usually in a Windows
+ environment and all variables being uppercase anyway. But keep
+ TMP and TEMP for paranoia.
+
+2015-01-14 Corinna Vinschen <corinna@vinschen.de>
+
+ * environ.cc (build_env): When merging the user's Windows environment,
+ explicitely skip the variables needing conversion to avoid collisions.
+ Extend comment to explain.
+
+2015-01-13 Corinna Vinschen <corinna@vinschen.de>
+
+ * uinfo.cc (pwdgrp::fetch_account_from_windows): Drop code from
+ 2014-11-17, always prepending domain to NT SERVICE accounts when
+ searching by name. Fix test expression to allow fully qualified
+ names for NT SERVICE accounts. Extend comment to explain a bit.
+
+2015-01-12 Pierre A. Humblet <pierre@phumblet.no-ip.org>
+
+ * minires-os-if.c (cygwin_query): Change questions into answers.
+
+2015-01-08 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygheap.h (cygheap_pwdgrp::get_shell): Add sid to argument list.
+ (cygheap_pwdgrp::get_gecos): Ditto.
+ * uinfo.cc (fetch_windows_home): Accept cyg_ldap and PUSER_INFO_3
+ arguments, and fetch db home dir values right here.
+ (fetch_from_path): Accept cyg_ldap, PUSER_INFO_3 pointers and sid
+ arguments. Add '%H' format specifier to fetch Windows home dir in
+ POSIX notation.
+ (cygheap_pwdgrp::get_home): Accommodate changes to fetch_windows_home
+ and fetch_from_path.
+ (cygheap_pwdgrp::get_shell): Ditto.
+ (cygheap_pwdgrp::get_gecos): Ditto.
+ (pwdgrp::fetch_account_from_windows): Accommodate sid argument to
+ cygheap_pwdgrp::get_shell and cygheap_pwdgrp::get_gecos.
+
+2015-01-08 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/socket.h (struct cmsghdr): Redefine cmsg_len as type
+ size_t. Add comment to explain why.
+
+2015-01-08 Corinna Vinschen <corinna@vinschen.de>
+
+ * localtime.cc (__cygwin_gettzoffset): New function for access from
+ newlib.
+ (__cygwin_gettzname): Ditto.
+
+2015-01-07 Corinna Vinschen <corinna@vinschen.de>
+
+ * localtime.cc (tzload): Fix loading latest timezone offsets into
+ tzinfo from zoneinfo files. Add comment to explain what we do.
+ (tzparse): Add more comments to explain in case of loading timezone
+ offset from other sources.
+