2261 lines
88 KiB
Plaintext
2261 lines
88 KiB
Plaintext
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.
|
|
|