summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Allow cygwin_conv_path(3) and cygpath(1) to emit /proc/cygdrive prefixed pathCorinna Vinschen2015-12-0613-45/+131
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. * cygpath.cc (absolute_flag): Initialize to CCP_RELATIVE to simplify expressions. (cygdrive_flag): New global flag. (long_options): Add --proc-cygdrive option. (options): Add -U option. (usage): Add description for -U option. (do_sysfolders): Or cygdrive_flag to cygwin_conv_path call. (do_pathconv): Simply or absolute_flag to conv_func. Or cygdrive_flag to conv_func. (do_options): Initalize absolute_flag to CCP_RELATIVE. Initialize new cygdrive_flag. Set absolute_flag to CCP_ABSOLUTE on -a. Set cygdrive_flag to CCP_PROC_CYGDRIVE on -U. * new-features.xml (ov-new2.4): Document cygpath -U option. * utils.xml (cygpath): Ditto. * path.xml (func-cygwin-path): Add CCP_PROC_CYGDRIVE description. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Always define __high_bsssize, do not just PROVIDE it.Nick Clifton2015-12-042-2/+6
| | | | * msp430/msp430xl-sim.ld (__high_bsssize): Define.
* Add release message for workaround added with previous commitsCorinna Vinschen2015-12-031-0/+7
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* On 64 bit, only create new thread stack if started from 32 bit process on ↵Corinna Vinschen2015-12-036-60/+90
| | | | | | | | | | | | | | | | | | | | | | affected platforms * 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. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix thinko in /proc/<PID>/maps TEB detection on W10 1511Corinna Vinschen2015-12-032-26/+60
| | | | | | | | | | | * 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. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix /proc/<PID>/maps output for PEB and TEBs on W10 1511Corinna Vinschen2015-12-035-10/+113
| | | | | | | | | | | | | | | | * 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. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Always move 64 bit main thread stack to defined pthread stack areaCorinna Vinschen2015-12-034-0/+83
| | | | | | | | | | | 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. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cleanup in dcrt0.cc and fork.ccCorinna Vinschen2015-12-033-6/+12
| | | | | | | | * dcrt0.cc (child_info_fork::alloc_stack): Fix formatting. * fork.cc (frok::parent): Fix formatting. (child_copy): Change type of res to BOOL. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Always restore full TEB stack info in forkeeCorinna Vinschen2015-12-032-9/+14
| | | | | | | * dcrt0.cc (dll_crt0_1): Always restore the TEB stack info. Especially restore DeallocationStack. Fix comment. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add missing dcrt0.cc patch to previous commitCorinna Vinschen2015-12-032-1/+4
| | | | | | * dcrt0.cc (child_info_fork::alloc_stack): Don't set stackaddr to 0. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Safely recognize when fork is running from main thread or another pthreadCorinna Vinschen2015-12-033-2/+10
| | | | | | | | * 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. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Rename parent stack members in child_info struct to align with OS namesCorinna Vinschen2015-12-024-28/+36
| | | | | | | | | * 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. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Drop using _tlsbase and _tlstop in favor of access via NtCurrentTeb.Corinna Vinschen2015-12-027-40/+41
| | | | | | | | | | | | | * 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. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* miscfuncs.cc: Fix typos in commentCorinna Vinschen2015-12-021-2/+2
|
* Only generate BUILTIN SIDs for uid/gid values <= 999Corinna Vinschen2015-11-292-2/+7
| | | | | | | * uinfo.cc (pwdgrp::fetch_account_from_windows): Only create 1-5-32-x SIDs from ids for x <= 999. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Use correct gid value for Microsoft Account when /etc/group is in useCorinna Vinschen2015-11-292-2/+18
| | | | | | | | * 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. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Save and restore MXCSR register in delayed signal handlingCorinna Vinschen2015-11-282-0/+7
| | | | | | | * gendef (sigdelayed): Save and restore content of the MXCSR register on x86_64. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Belatedly create release notes for commits 2f4fef9 and 9471b0bCorinna Vinschen2015-11-271-0/+7
|
* Fix race condition when waiting for a signalCorinna Vinschen2015-11-2712-26/+63
| | | | | | | | | | | | | | | | | | | | | | | | * 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. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix SEGV of kill -l 0Michael Kwasigroch2015-11-262-3/+8
| | | | | | | * kill.cc (strsigno): Don't call sys_sigabbrev for signal 0. (listsig): Don't call strsigno for signal 0. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix creating relative native symlinks in top-level directoriesCorinna Vinschen2015-11-262-1/+5
| | | | | | * path.cc (symlink_native): Fix index when looking for colon in path. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add MacType to BLODADavid Macek2015-11-262-2/+7
| | | | | | | | | | | | One more patch. MacType was observed by several users to cause `GPGME: Invalid crypto engine` failures in MSYS2. See <https://github.com/Alexpux/MSYS2-packages/issues/393>. I also removed two full stops in the sake of consistency. * faq-using.xml: Add MacType to the BLODA. Fix formatting. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add a section describing peculiarities of how Cygwin creates NTFS symlinksDavid Macek2015-11-262-0/+8
| | | | | | | | | | | | | First take on how to describe dereferencing of Cygwin-only symlinks path components when creating NTFS symlinks. Note that I haven't tried building the documentation, so I don't know if the added paragraph breaks anything. Hopefully not. * pathnames.xml: Add a section describing peculiarities of how Cygwin creates NTFS symlinks. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add Forefront TMG to the BLODADavid Macek2015-11-262-0/+5
| | | | | | | | | | | | | | | A user of MSYS2 had non-deterministic segfaults when running simple command from bash started from cmd. We've isolated the cause to `C:\Program Files (x86)\Forefront TMG Client\FwcWsp64.dll`. See <http://sourceforge.net/p/msys2/tickets/212/> for a little more information. It seems enough to include the software in BLODA, but if not, sorry for the unsolicited patch and let's discuss. * faq-using.xml: Add Forefront TMG to the BLODA Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Only build _strtodg_r on targets supporting a distinct long double typeCorinna Vinschen2015-11-262-0/+9
| | | | | | | * libc/stdlib/strtodg.c: Add ifdef to check _HAVE_LONG_DOUBLE and _LDBL_EQ_DBL. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* libc/stdlib/strtorx.c: Fix ifdef to check _LDBL_EQ_DBL.Steve Ellcey2015-11-242-2/+6
|
* [ARM] Adjust strcmp-armv7.S selection logic.Marcus Shawcroft2015-11-234-3/+40
| | | | | | Reformulate the strcmp-armv7.S selection logic around the architecture features required by the implementation code rather (some) version of the architecture that expose those features.
* [ARM] Factor out the thumb2 -Os implementation.Marcus Shawcroft2015-11-234-13/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The patch moves the inline ASM thumb2 -Os implementation out into its own .S file. Tested by building newlib and comparing libc.a binaries before and after for all permutations of: Architectures: armv4 armv4t armv5 armv5t armv5te armv6 armv6j armv6k armv6z armv6kz armv6t2 armv6-m armv6s-m armv7 armv7-a armv7ve armv7-r armv7-m armv7e-m armv8-a iwmmxt iwmmxt2 ISAs: thumb arm Optimization Levels: Os O2 Excluding: armv6s-m -mthumb armv6-m -mthumb armv6zk -mthumb armv6z -mthumb armv6k -mthumb armv6j -mthumb
* Fix initialisation of .upper.bss for the MSP430.Nick Clifton2015-11-232-0/+5
| | | | * msp430/msp430xl-sim.ld (__high_bsssize): Define.
* Fix numeric and monetary decimal point and thousands separator in fa_IR and ↵Corinna Vinschen2015-11-215-10/+77
| | | | | | | | | | | | | ps_AF locales * 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. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Handle multibyte decimapl point in strtold.Corinna Vinschen2015-11-212-1/+13
| | | | | | | * libc/stdlib/strtodg.c: Define USE_LOCALE. (_strtodg_r): Handle multibyte decimal point. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Mention strtold patch in Cygwin 2.4.0 release messageCorinna Vinschen2015-11-201-0/+4
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Import correctly working strtold from David M. Gay.Corinna Vinschen2015-11-2014-19/+1369
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libc/stdlib/Makefile.am (GENERAL_SOURCES): Add strtodg.c and strtorx.c. * libc/stdlib/Makefile.in: Regenerate. * libc/stdlib/strtodg.c: New file implementing generic string to long double conversion. * libc/stdlib/strtorx.c: New file, implementing IEEE format string to long double conversion. * libc/stdlib/mprec.h (_strtodg_r): Declare. (_strtorx_r): Declare. * libc/stdlib/gdtoa.h (__UShort): Define. * libc/stdlib/strtold.c (__flt_rounds): Define for i386 and x86_64 target. (FLT_ROUNDS): Define, as 0 on platforms missing a __flt_rounds function. (_strtold_r): Converted from strtold. Call _strtorx_r on targets supporting distinct long doubles. (strtold): Just call _strtold_r. * libc/include/stdlib.h (_strtold_r): Declare. * libc/stdlib/ldtoa.c (_strtold): Comment out. Explain why. * libc/stdio/vfscanf.c (__SVFSCANF_R): Call _strtold_r instead of _strtold. * libc/machine/powerpc/vfscanf.c (__svfscanf_r): Ditto. * common.din (strtold): Drop redirection to _strtold. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Make match function globally available to stdlib functions.Corinna Vinschen2015-11-204-21/+26
| | | | | | | | * libc/stdlib/strtod.c (match): Move from here... * libc/stdlib/gdtoa-hexnan.c (match): ...to here. * libc/stdlib/mprec.h (match): Declare and add __match define. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Drop unused declaration from wcstold.cCorinna Vinschen2015-11-202-2/+4
| | | | | | * libc/stdlib/wcstold.c (_strtold): Drop unused declaration. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix typo in rpmatch doc referenceYaakov Selkowitz2015-11-192-1/+5
| | | | | | * libc/stdlib/stdlib.tex: Fix typo in rpmatch reference. Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
* ldtoa.c: Reindent to GNU styleCorinna Vinschen2015-11-192-2317/+2408
| | | | | | | * libc/stdlib/ldtoa.c: Convert to GNU style so as not to get crazy reading the code. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix rpmatch build problemCorinna Vinschen2015-11-192-0/+5
| | | | | | * libc/stdlib/rpmatch.c: Include sys/types.h to make GCC happy. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Simplify the markup for sprintf and swprintf documentationJon Turney2015-11-193-64/+76
| | | | | | | | | | | | - move the description of the alternative form produced with the # flag from a nested table to an additional table 2015-11-12 Jon Turney <jon.turney@dronecode.org.uk> * libc/stdio/sprintf.c: Simplify documentation markup. * libc/stdio/swprintf.c: Ditto. Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
* Improve markup of sscanf and swscanf documentationJon Turney2015-11-193-114/+242
| | | | | | | | | | | | | | | | | | | - use bullet points to separate width, size and type sections, rather than using rows in an enormous table, for consistency with sprintf and swprintf. - use code markup for size bullet point for consistency - use a texinfo multitable for description of the size flags, rather than some preformatted text - tidy up some whitespace so type flags are all aligned 2015-11-12 Jon Turney <jon.turney@dronecode.org.uk> * libc/stdio/sscanf.c: Improve documentation markup. * libc/stdio/swscanf.c: Ditto. Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
* Document new ACL codeCorinna Vinschen2015-11-183-0/+63
| | | | | | * new-features.xml (ov-new2.4): Add new ACL changes. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* get_posix_access: Skip merging permissions if user can't get more permissionsCorinna Vinschen2015-11-182-2/+17
| | | | | | | | * 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. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* get_posix_access: Fix computation of effective user permissionsCorinna Vinschen2015-11-182-2/+7
| | | | | | | * sec_acl.cc (get_posix_access): Fix computation of effective user permissions to handle current user, not only the file owner. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix file type mode bit handling on object security.Corinna Vinschen2015-11-183-12/+24
| | | | | | | | | | | | | | | * 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. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* setfacl: Allow to combine -b and -k optionsCorinna Vinschen2015-11-185-129/+156
| | | | | | | | | | | | | | | * setfacl.c (action_t): Rename DeleteAll to DeleteExt. Add DeleteAll. Rearrange for bit-wise testing later in the code. (delallacl): Handle -b -k combination. (setfacl): Handle DeleteExt/DeleteAll. (usage): Fix -b/-k output. Rearrange output to better fill 80 columns. (main): Allow to combine -b and -k. * utils.xml (setfacl): Accommodate -b/-k change. * new-features.xml (ov-new2.3): Add setfacl -b/-k change. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix permission evaluation for !new_style ACLsCorinna Vinschen2015-11-184-54/+72
| | | | | | | | | | | | | * 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. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix up POSIX permission handlingCorinna Vinschen2015-11-183-9/+67
| | | | | | | | | | | | | | * 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. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Use Authz to fetch correct user permissions.Corinna Vinschen2015-11-182-2/+28
| | | | | | * sec_acl.cc (getacl): Use Authz to fetch correct user permissions. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add Authz class to compute exact POSIX user perms in a security descriptorCorinna Vinschen2015-11-185-25/+194
| | | | | | | | | | | | | | | | | | * 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. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* * sec_acl.cc (get_posix_access): Fix class_perm in !new_style case.Corinna Vinschen2015-11-182-1/+6
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>