summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix memcpy bug that reads past end of buffer.Steve Ellcey2016-01-281-1/+1
| | | | | * libc/machine/mips/memcpy.S (memcpy): Fix read past end of input.
* grp.h: use __BSD_VISIBLE and __XSI_VISIBLE guardsYaakov Selkowitz2016-01-281-7/+5
| | | | | | | | This fixes the build of krb5 and other packages on Cygwin. * libc/include/grp.h: Use __BSD_VISIBLE and __XSI_VISIBLE guards. Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
* Treat ACLs with extra ACEs for Admins and SYSTEM like a trivial ACLCorinna Vinschen2016-01-283-20/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | POSIX.1e requires that chmod changes the MASK rather than the GROUP_OBJ value if the ACL is non-trivial. On Windows, especially on home machines, a standard ACL often consists of entries for the user, maybe the group, and additional entries for SYSTEM and the Administrators group. A user calling chmod on a file with bog standard Windows perms usually expects that chmod changes the GROUP_OBJ perms, but given the rules from POSIX.1e we can't do that. However, since we already treat Admins and SYSTEM special in a ACL (they are not used in MASK computations) we go a step in the Windows direction to follow user expectations. If an ACL only consists of the three POSIX permissions, plus entries for Admins and SYSTEM *only*, then we change the permissions of the GROUP_OBJ entry *and* the MASK entry. * fhandler_disk_file.cc (fhandler_disk_file::chmod): Drop unused code. Add special handling for a "standard" Windows ACL. Add comment to explain. * sec_acl.cc (get_posix_access): Allow to return "standard-ness" of an ACL to the caller. Add preceeding comment to explain a bit. * security.h (get_posix_access): Align prototype. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* get_posix_access: Fix primary group handing when multiple ACEs existCorinna Vinschen2016-01-281-3/+5
| | | | | | | Handle additional ACE for primary group only as another GROUP entry if it's an allow ACE. Deny ACEs don't qualify. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Make macro checks ARMv8-M baseline proofThomas Preud'homme2016-01-2814-63/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | libgloss: * arm/Makefile.in: Add newlib/libc/machine/arm to the include path if newlib is present. * arm/arm.h: Include acle-compat.h. (THUMB_V7_V6M): Rename to ... (PREFER_THUMB): This. Use ACLE macros __ARM_ARCH_ISA_ARM instead of __ARM_ARCH_6M__ to decide whether to define it. (THUMB1_ONLY): Define for Thumb-1 only targets. (THUMB_V7M_V6M): Rename to ... (THUMB_VXM): This. Defined based on __ARM_ARCH_ISA_ARM, excluding ARMv7. * arm/crt0.S: Use THUMB1_ONLY rather than __ARM_ARCH_6M__, !__ARM_ARCH_ISA_ARM rather than THUMB_V7M_V6M for fp enabling, and PREFER_THUMB rather than THUMB_V7_V6M. Rename other occurences of THUMB_V7M_V6M to THUMB_VXM. * arm/linux-crt0.c: Likewise. * arm/redboot-crt0.S: Likewise. * arm/swi.h: Likewise. * arm/trap.S: Likewise. newlib: * libc/machine/arm/memcpy-stub.c: Use ACLE macros __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to check for Thumb-2 only targets rather than __ARM_ARCH and __ARM_ARCH_PROFILE. * libc/machine/arm/memcpy.S: Likewise. * libc/machine/arm/setjmp.S: Likewise for Thumb-1 only target and include acle-compat.h. * libc/machine/arm/strcmp.S: Likewise for Thumb-1 and Thumb-2 only target and include acle-compat.h. * libc/sys/arm/arm.h: Include acle-compat.h. (THUMB_V7_V6M): Rename to ... (PREFER_THUMB): This. Use ACLE macro __ARM_ARCH_ISA_ARM instead of __ARM_ARCH_6M__ to decide whether to define it. (THUMB1_ONLY): Define for Thumb-1 only targets. (THUMB_V7M_V6M): Rename to ... (THUMB_VXM): This. Defined based on __ARM_ARCH_ISA_ARM, excluding ARMv7. * libc/sys/arm/crt0.S: Use PREFER_THUMB rather than THUMB_V7_V6M and rename THUMB_V7M_V6M into THUMB_VXM. * libc/sys/arm/swi.h: Likewise.
* Deprecate newlib and winsup ChangeLog filesCorinna Vinschen2016-01-284-34854/+34856
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Don't use LoadLibraryEx(..., LOAD_LIBRARY_SEARCH_SYSTEM32). It hangsCorinna Vinschen2016-01-273-31/+13
| | | | | | | | | | | | | | | | Observed running hexchat under X. For some reason the call to LoadLibraryEx(..., LOAD_LIBRARY_SEARCH_SYSTEM32) in dll_load hangs when trying to autoload MsgWaitForMultipleObjectsEx in select.cc after hexchat forks to run DNS calls. Dropping the call and just using full paths as in 2.3.1 fixes the issue. * autoload.cc (dll_load): Drop call to LoadLibraryEx with LOAD_LIBRARY_SEARCH_SYSTEM32 flag. * wincap.h (wincaps::has_load_lib_search_flags): Remove. * wincap.cc (wincaps::has_load_lib_search_flags): Drop handling this flag. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Drop has_broken_fnoi flagCorinna Vinschen2016-01-273-7/+0
| | | | | | | | | * mount.cc (fs_info::update): Don't set has_broken_fnoi. It's unused anyway. * mount.h (class fs_info): Remove has_broken_fnoi status flag. * path.h (class path_conv): Remove has_broken_fnoi method. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Make select wait state more readableCorinna Vinschen2016-01-271-15/+19
| | | | | | | | Rename "res" to "wait_state" and change its type to select_stuff::wait_states. Use select_stuff::wait_states values instead of ints throughout. Rearrange a few comments. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix missing 'user' in usertemp docsCorinna Vinschen2016-01-271-1/+1
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add 2.4.1 release message filecygwin-2_4_1-releaseCorinna Vinschen2016-01-231-0/+12
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* cygpath: Avoid returning SysWOW64Corinna Vinschen2016-01-211-0/+13
| | | | | | | | | | | | | | | | | | | | | On Cygwin 32 running under WOW64: When case-correcting the path fetched with -S, the underlying Windows function fetching the normalized path returns the real path C:\Windows\SysWOW64 instead of the path redirection enabled C:\Windows\System32 path. This breaks using the result of `cygpath -S' to fetch the POSIX path of the network related files under SYSTEMROOT\drivers\etc. This path is in fact under the *real* C:\Windows\System32 and only mapped into the 32 bit C:\Windows\System32 (aka C:\Windows\SysWOW64) via path redirection. Sounds messy? This patch checks if we're running under WOW64. If so, it changes the path returned by GetSystemDirectoryW from "system32" to "Sysnative". This in turn is changed to "System32" by NtQueryInformationFile, so we're back to what we need. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* cygwin_logon_user: Return non-privileged token as wellCorinna Vinschen2016-01-211-3/+7
| | | | | | | | | | If the calling process doesn't have sufficient privileges to fetch the linked token of an admin-user token, cygwin_logon_user fails. This patch changes that by returning the original, unprivileged token of the admin user to allow authentication and calling setuid for the current process. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix formatting in sec_auth.ccCorinna Vinschen2016-01-211-3/+3
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Bump cygwin version to 2.4.1Corinna Vinschen2016-01-161-1/+1
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* faq: Update FAQ question and answer about gdb and signalsJon Turney2016-01-151-6/+13
| | | | | | * faq-programming.xml: Update question and answer about gdb and signals. Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
* get_posix_access: Fix group deny bits leaking into file type attribute bitscygwin-2_4_0-releaseCorinna Vinschen2016-01-151-1/+1
| | | | | | | | * sec_acl.cc (get_posix_access): Fix bracketing in expression constructing POSIX group permissions so as not leaking deny bits into POSIX file type bits. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Initialize handle in dll_load to avoid compiler warningCorinna Vinschen2016-01-121-1/+1
| | | | | | * autoload.cc (dll_load): Initialize h to NULL. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Use MAKEWORD macro in WSAStartup call per documentationCorinna Vinschen2016-01-121-1/+1
| | | | | | | * autoload.cc (wsock_init): Use MAKEWORD macro to create requested version rather than handcrafted expression. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Try loading with safe path using LOAD_LIBRARY_SEARCH_SYSTEM32 firstCorinna Vinschen2016-01-123-18/+43
| | | | | | | | | | | | * autoload.cc (dll_load): Move safe loading from std_dll_init here. Add code to handle systems supporting LOAD_LIBRARY_SEARCH flags. Add comments to explain what the code is doing. Fix up comment preceeding this function. (std_dll_init): Move safe loading code to dll_load. * wincap.h (wincaps::has_load_lib_search_flags): New element. * wincap.cc: Implement above element throughout. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix previous fix for generating unique inode numbers for socketsCorinna Vinschen2016-01-113-8/+12
| | | | | | | | | | | | * fhandler.h (fhandler_base::get_plain_ino): New inline method. Add comment to explain what it's supposed to be used for. * fhandler_socket.cc (fhandler_socket::get_proc_fd_name): Create filename using inode number. (fhandler_socket::fstat): Generate inode number from filename if ino is not set (that's the case in a stat(2) call). * pipe.cc: Throughout, use get_plain_ino when appropriate. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Revert "autoload.cc: Drop using full paths for system DLLs"Corinna Vinschen2016-01-111-3/+11
| | | | | | | | | | This reverts commit 4b104ce07070e32363a217a554441a8b4df69d12. The DLLs always guaranteed to be loaded from the system dir are only those in the KnownDLLs list. We're using some DLLs not in that list on all supported OSes, thus we need to make sure to use full paths. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Return unique inode numbers when calling stat/fstat on pipes and IP socketsCorinna Vinschen2016-01-117-45/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * fhandler.h (class fhandler_base): Convert unique_id to int64_t. (fhandler_base::set_ino): New protected inline method. (fhandler_base::get_unique_id): Convert to int64_t. (fhandler_base::set_unique_id): New inline method taking int64_t. (fhandler_pipe::fstat): Declare. (fhandler_pipe::init): Take extra parameter. (fhandler_pipe::create): Ditto. * fhandler_socket.cc (fhandler_socket::init_events): Set inode number to serial number. (fhandler_socket::fstat): Set device to DEV_TCP_MAJOR. Create st_ino from get_ino. * include/cygwin/signal.h (struct _sigcommune): Replace _si_pipe_fhandler with _si_pipe_unique_id. * pinfo.h (_pinfo::pipe_fhandler): Take unique id instead of HANDLE. * pinfo.cc (commune_process): Accommodate change to _si_pipe_unique_id. (_pinfo::commune_request): Ditto. (_pinfo::pipe_fhandler): Ditto. * pipe.cc (fhandler_pipe::init): Take unique id as argument and set inode number and unique_id from there. (fhandler_pipe::open): Rework to find any matching pipe from unique id in filename. (fhandler_pipe::get_proc_fd_name): Create filename using inode number. (fhandler_pipe::create): Generate and return unique id from process pid and pipe_unique_id. In outer method, call init with additional unique id as parameter. (fhandler_pipe::fstat): New method. (pipe_worker): Accommodate using 64 bit inode number in filename. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* select(2): Drop checking descriptors in case of immediate timeout.Corinna Vinschen2016-01-111-6/+11
| | | | | | | * select.cc (select): Call sel.poll only if sel.wait returned select_ok. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add release message for previous commitCorinna Vinschen2016-01-091-0/+4
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* select: Don't timeout without setting descriptor arrays to all zeroCorinna Vinschen2016-01-091-15/+20
| | | | | | | | | | | | * select.cc (copyfd_set): Remove. (select): Don't copy local wait fd arrays over to returned fd arrays since bits set there are not accounted for in return value. Zero out returned fd arrays instead. Always call sel.poll even in case of a timeout. Always zero out fd array when timing out. Convert while/do to do/while for clarity. Use dedicated variable as return value to decouple return value from artificial return code from sel.wait. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Do not treat the command line or environment like pathsJohannes Schindelin2016-01-084-13/+44
| | | | | | | | | | | | | | | | | | | | | | | | * dcrt0.cc (dll_crt0_1), environ.cc (environ_init, getwinenveq, build_env), strfuncs.cc (sys_wcstombs, sys_wcstombs_alloc), wchar.c (sys_wcstombs, sys_wcstombs_alloc): avoid mis-conversions of text that does not, actually, refer to a path or file name Detailed explanation: Our WCS -> UTF conversion handles the private Unicode page specially to allow for otherwise invalid file names. However, this handling makes no sense for command-lines, nor environment variables, which we would rather convert verbatim. As a stop-gap solution, let's just introduce a version of the sys_wcstombs() function that specifically excludes that file name conversion magic. The proper solution is to change sys_wcstombs() to assume that it is not a path that wants to be converted, and introduce sys_wcstombs_path() that does, but that is a bigger task which we leave for another patch. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* Deprecate all winsup ChangeLog filesCorinna Vinschen2016-01-0712-9890/+9896
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* cygpath: Try to return system directories with correct caseCorinna Vinschen2016-01-072-14/+40
| | | | | | | | | * cygpath.cc (do_sysfolders): Drop lame workaround to fix case of directory returned by GetSystemDirectoryW. Try to fix case of any path returned by this function in case it has to return a POSIX path to support case-sensitivity. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* select: Set exceptfd bit if fetching mailslot info failsCorinna Vinschen2016-01-071-0/+1
| | | | | | * select.cc (peek_mailslot): Set except_ready if GetMailslotInfo fails. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* select.cc: Fit comments into 80 columnsCorinna Vinschen2016-01-071-11/+12
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Convert utmp{x}name to int, return useful value. Define _PATH_UTMPXCorinna Vinschen2016-01-076-8/+21
| | | | | | | | | | | * syscalls.cc (utmpname): Convert to int. Return 0 if strdup worked, -1 otherwise. * include/utmpx.h (_PATH_UTMPX): Define as _PATH_UTMP. (utmpxname): Declare as int function. * include/sys/utmp.h (utmpname): Ditto. * include/cygwin/version.h: Bump API minor version. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Drop use of not yet available type acl_perm_tCorinna Vinschen2016-01-071-1/+1
| | | | | | * sec_acl.cc (__aclcalcmask): Use mode_t instead of acl_perm_t Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Deprecate Cygwin ChangeLog fileCorinna Vinschen2016-01-072-2260/+2261
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix up errors in regenerated files for 2.3.0 release.newlib-snapshot-20160104Jeff Johnston2016-01-044-3223/+4941
|
* setfacl: Remove unused local variableCorinna Vinschen2015-12-252-1/+5
| | | | | | * setfacl.cc (delacl): Remove unused local variable. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Only request WRITE_DAC rights when writing an ACLCorinna Vinschen2015-12-252-2/+8
| | | | | | | | * 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. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* aclsort: Honor calclass argument and allow recalculating ACL mask.Corinna Vinschen2015-12-242-1/+26
| | | | | | | * sec_acl.cc (__aclcalcmask): New function to recalculate ACL masks. (aclsort32): Honor calclass argument. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* aclfromtext: Actually return aclcnt parameterCorinna Vinschen2015-12-242-2/+10
| | | | | | * sec_acl.cc (aclfromtext32): Return missing aclcnt parameter. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Use TLS buffer in ACL<->text conversionCorinna Vinschen2015-12-242-4/+11
| | | | | | | * sec_acl.cc (acltotext32): Use tmp_pathbuf rather than stack buffer. (aclfromtext32): Ditto. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* sec_acl.cc: Cosmetic changesCorinna Vinschen2015-12-242-14/+18
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Regenerate files for newlib 2.3.0.newlib-2_3_0Jeff Johnston2015-12-21105-6166/+4598
|
* setfacl(1): Fix handling of -m and -x on a single commandlineCorinna Vinschen2015-12-212-9/+28
| | | | | | | | * setfacl.cc (delace): New helper function to delete a single ACE. (delacl): Call delace. (modacl): Ditto, if entry is supposed to get deleted. Align comments. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix atexit logic to honor _ATEXIT_DYNAMIC_ALLOC setting.Jeff Johnston2015-12-212-0/+12
| | | | | | | | | | | | | If small reent is enabled (_REENT_SMALL is defined) then malloc() was used in __register_exitproc() even if user requested it to be disabled (_ATEXIT_DYNAMIC_ALLOC is defined). With this fix, function fails when _ATEXIT_DYNAMIC_ALLOC is defined and whole static storage is already used. 2015-12-21 Freddie Chopin <freddie.chopin@gmail.com> * libc/stdlib/__atexit.c (__register_exitproc): Fix for _ATEXIT_DYNAMIC_ALLOC.
* Add static instance of _on_exit_args for _REENT_SMALL platforms.Jeff Johnston2015-12-218-23/+108
| | | | | | | | | | | | | 2015-12-21 Freddie Chopin <freddie.chopin@gmail.com> * libc/stdlib/on_exit_args.{c,h}: New files. * libc/stdlib/Makefile.am: Add new source file. * libc/stdlib/Makefile.in: Regenerate. * libc/stdlib/__atexit.c (__register_exitproc): Initialize _on_exit_args_ptr field of _GLOBAL_ATEXIT on first run. * libc/stdlib/on_exit.c: Force linking of static instance of _on_exit_args. * libc/stdlib/cxa_atexit.c: Likewise.
* setfacl(1): Rewrite support for mask recomputationCorinna Vinschen2015-12-216-37/+78
| | | | | | | | | | | | | | | | * setfacl.cc (modacl): Move recomputing mask into new function. (check_got_mask): New function checking if mask is in input. (recompute_mask): New function to recompute mask. (addmissing): Align mask computation to Linux setfacl. (setfacl): Call check_got_mask and recompute_mask on Set, Delete and Modify actions. (usage): Rename --substitute to --set. (longopts): Add --set option. * utils.xml (setfacl): Rename --substitute to --set. * new-features.xml (ov-new2.4): Rephrase setfacl changes. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* setfacl --mask/--no-mask really don't need an argumentHouder2015-12-202-2/+7
| | | | | | | * setfacl.cc (longopts): Drop accidentally requiring an argument to the --mask and --no-mask options. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix missing arg requirement for setfacl -x optionHouder2015-12-192-1/+5
| | | | | | * setfacl.cc (opts): Add colon to x option. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Drop sys_cp_wcstombs and save two arguments per callCorinna Vinschen2015-12-184-14/+12
| | | | | | | | | * 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. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Build msp430-specific libnosysDJ Delorie2015-12-174-6/+12
| | | | | | | | | | The MSP430 debuggers support I/O on hardware through CIO, so we can use a CIO-enabled library as the "nosys" library (in addition to the libsim library, which talks to our simulator) * configure.in: Don't build default libnosys for msp430 * configure: Regenerate. * msp430/Makefile: Rename libcio to libnosys.