summaryrefslogtreecommitdiffstats
path: root/winsup
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove misleading indentationPeter Foley2016-03-212-3/+6
| | | | | | | | | | | GCC 6.0+ warns on misleading indentation, so fix it. winsup/cygserver/ChangeLog * sysv_msg.cc (msgsnd): Fix misleading indentation. * sysv_msg.cc (msgrcv): Ditto. * sysv_sem.cc (semop): Ditto. Signed-off-by: Peter Foley <pefoley2@pefoley.com>
* Move arc4random Cygwin only code to CygwinSebastian Huber2016-03-212-0/+25
| | | | | | Keep the Newlib arc4random.c identical to the OpenBSD upstream version. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>.
* srandom: Replace accessing /dev/random by equivalent getentropy callCorinna Vinschen2016-03-201-10/+1
| | | | | | | | | | /dev/random calls getentropy. So there's no good reason to go out of our way to open /dev/random just to call getentropy anyway. * random.cc (srandomdev): Drop opening /dev/random in favor of calling getentropy. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Revert "Use high-resolution timebases for select()."Corinna Vinschen2016-03-203-141/+70
| | | | | | This reverts commit 6e70fd315a29578f090a98f84e9d8e95ddb156e3. Revert accidental push
* Revert "Debug printfs."Corinna Vinschen2016-03-203-21/+2
| | | | | | This reverts commit 9f82de59a07da145c177648fe474f19cd9def7a1. Revert accidental push
* Revert "Improve and simplify select()."Corinna Vinschen2016-03-203-15/+76
| | | | | | This reverts commit 472d0a228c56bd4783ebb0561667cda2de3cd168. Revert accidental push
* Drop redundant arc4random prototypes from cygwin/stdlib.hCorinna Vinschen2016-03-201-6/+0
| | | | | | | | | Newlib's default stdlib.h now defines these functions so we can drop them from the Cygwin-specific header. Remove the arc4random_stir and arc4random_uniform prototypes entirely. They shouldn't be used by applications anymore. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Allow machine-dependent arc4 lockingCorinna Vinschen2016-03-201-0/+30
| | | | | | | | | | | | newlib: * libc/stdlib/arc4random.h: Remove Cygwin-specific locking code. Conditionalize arc4 locking. Check for _ARC4_LOCK_INIT being undefined to fall back to default implementation. cygwin: * include/machine/_arc4random.h: New file. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Improve and simplify select().John Hood2016-03-203-76/+15
| | | | | | | | | | * cygwait.h (cygwait_us) Remove; this reverts previous changes. * select.h: Eliminate redundant select_stuff::select_loop state. * select.cc (select): Eliminate redundant select_stuff::select_loop state. Eliminate redundant code for zero timeout. Do not return early on early timer return. (select_stuff::wait): Eliminate redundant select_stuff::select_loop state.
* Debug printfs.John Hood2016-03-203-2/+21
| | | | | | | * fhandler.cc (fhandler_base::get_readahead): Add debug code. * fhandler_console.cc (fhandler_console::read): Add debug code. * select.cc (pselect): Add debug code. (peek_console): Add debug code.
* Use high-resolution timebases for select().John Hood2016-03-203-70/+141
| | | | | | | | | | | | * cygwait.h: Add cygwait_us() methods. * select.h: Change prototype for select_stuff::wait() for larger microsecond timeouts. * select.cc (pselect): Convert from old cygwin_select(). Implement microsecond timeouts. (cygwin_select): Rewrite as a wrapper on pselect(). (select): Implement microsecond timeouts. (select_stuff::wait): Implement microsecond timeouts with a timer object.
* * winsup/testsuite/configure: chmod a+xJohn Hood2016-03-201-0/+0
|
* Move get_nonascii_key into fhandler_console.John Hood2016-03-203-5/+3
| | | | | | | * fhandler.h (fhandler_console): Move get_nonascii_key() from select.c into this class. * select.cc (peek_console): Move get_nonascii_key() into fhandler_console class.
* respect datarootdirPeter Foley2016-03-201-0/+1
| | | | | | | | | | Recent versions of autoconf define datadir/infodir in terms of datarootdir. Add it. winsup/ChangeLog * Makefile.in: define datarootdir Signed-off-by: Peter Foley <pefoley2@pefoley.com>
* Fix strict aliasingPeter Foley2016-03-201-2/+1
| | | | | | | | | Fix a strict aliasing error detected by gcc 6.0+ winsup/cygwin/ChangeLog * pinfo.cc (winpids::enum_process): Fix strict aliasing. Signed-off-by: Peter Foley <pefoley2@pefoley.com>
* Fix typoed comparisonPeter Foley2016-03-201-1/+1
| | | | | | | winsup/cygwin/ChangeLog * thread.cc (semaphore::open): Fix mistaken conditional. Signed-off-by: Peter Foley <pefoley2@pefoley.com>
* The address of an class always evaluates to truePeter Foley2016-03-201-1/+1
| | | | | | | | | | winsup/cygwin/pinfo.cc:465:14: error: the compiler can assume that the address of 'tc' will always evaluate to 'true' [-Werror=address] winsup/cygwin/ChangeLog * pinfo.cc (_pinfo::set_ctty): remove always true check. Signed-off-by: Peter Foley <pefoley2@pefoley.com>
* Remove misleading indentationPeter Foley2016-03-201-1/+1
| | | | | | * syscalls.cc (getpriority): Fix misleading indentation. Signed-off-by: Peter Foley <pefoley2@pefoley.com>
* Add necessary braces to if statementsPeter Foley2016-03-202-2/+4
| | | | | | | | | | | The missing braces cause only the first expression to be guarded by the else clause. winsup/cygwin/ChangeLog * fhandler_disk_file.cc (facl): Add missing braces to if statement. * mount.cc (dos_drive_mappings): Add missing braces to if statement. Signed-off-by: Peter Foley <pefoley2@pefoley.com>
* Remove dead code from fhandler_console.Peter Foley2016-03-201-2/+0
| | | | | | | | | | | | | | | | | This if is unconditionally false, so remove it. winsup/cygwin/fhandler_console.cc: In member function 'bool dev_console::fillin(HANDLE)': winsup/cygwin/fhandler_console.cc:740:22: error: self-comparison always evaluates to false [-Werror=tautological-compare] if (b.dwSize.Y != b.dwSize.Y || b.dwSize.X != b.dwSize.X) ~~~~~~~~~~~^~~~~~~~~~~~~ winsup/cygwin/fhandler_console.cc:740:50: error: self-comparison always evaluates to false [-Werror=tautological-compare] if (b.dwSize.Y != b.dwSize.Y || b.dwSize.X != b.dwSize.X) ~~~~~~~~~~~^~~~~~~~~~~~~ winsup/cygwin/ChangeLog * fhandle_console.cc (fillin): remove dead code Signed-off-by: Peter Foley <pefoley2@pefoley.com>
* Remove unused and unsafe call to __builtin_frame_addressPeter Foley2016-03-201-3/+2
| | | | | | | | | | | | | | | | initial_sp has been unused since commit fbf23e3 back in 2000. Keep the value, so as to avoid changing the offset of magic_biscuit. winsup/cygwin/lib/_cygwin_crt0_common.cc:140:52: error: calling 'void* __builtin_frame_address(unsigned int)' with a nonzero argument is unsafe [-Werror=frame-address] u->initial_sp = (char *) __builtin_frame_address (1); winsup/cygwin/ChangeLog lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Initialize initial_sp with nullptr. Signed-off-by: Peter Foley <pefoley2@pefoley.com>
* winsup: Move all old CVS Changelogs into CVSChangeLogs.old dirCorinna Vinschen2016-03-1939-7/+0
|
* Remove ill-advised cygwin_propsCorinna Vinschen2016-03-195-215/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cygwin_props have been invented to allow switching off the unique installation keys in the first place, supposedly for debugging. This never really was a good idea, after all we *want* the installations to be independent and there's no good reason to break that, not even for debugging purposes. Other than that, cygwin_props were meant to be used for some other global settings which never took place. There's just no good reason to tweak the DLL binary invisibly where a setting could be done in a file or the environment. This patch removes the cygwin_props entirely, including the related settings in cygcheck. cygwin: * cygprops.h: Remove file. * globals.cc (cygwin_props): Remove. * cygheap.cc (init_cygheap::init_installation_root): Drop removing installation key. utils: * cygcheck.cc: Drop including cygprops.h. Remove now unused option values. (unique_object_name_opt): Remove. (handle_unique_object_name): Remove function. (usage): Remove text for unique-object-names options. (longopts): Remove unique-object-names options. (main): Drop handling unique-object-names options. doc: * utils.xml (cygcheck): Remove text for unique-object-names options. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Remove references to older Cygwin releases from documentationCorinna Vinschen2016-03-1815-166/+107
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Implement getentropy for CygwinCorinna Vinschen2016-03-185-30/+27
| | | | | | | | | | | | | | * miscfuncs.cc (getentropy): Move fhandler_dev_random::crypt_gen_random here and rename to getentropy. Fix type and return values to match getentropy requirements. * miscfuncs.h (getentropy): Add prototype. * fhandler.h (fhandler_dev_random::crypt_gen_random): Remove prototype. * fhandler_random.cc (fhandler_dev_random::crypt_gen_random): Drop. (fhandler_dev_random::write): Use getentropy instead. (fhandler_dev_random::read): Ditto. * fhandler_socket.cc (fhandler_socket::af_local_set_secret): Ditto. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Delete Cygwin's arc4random in favor of new Newlib implementationCorinna Vinschen2016-03-182-364/+0
| | | | | | | * Makefile.in (DLL_OFILES): Remove arc4random.o. * libc/arc4random.c: Remove file. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: define byteswap.h inlines as macrosYaakov Selkowitz2016-03-171-5/+9
| | | | | | | The bswap_* "functions" are macros in glibc, so they may be tested for by the preprocessor (e.g. #ifdef bswap_16). Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
* Feature test macros overhaul: Cygwin headersYaakov Selkowitz2016-03-173-6/+9
| | | | | | Use proper internal macros for BSD and GNU. Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
* Feature test macros overhaul: time.hYaakov Selkowitz2016-03-171-3/+4
| | | | | | Throughout, replace __STRICT_ANSI__ with the proper internal macros. Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
* Feature test macros overhaul: stdlib.hYaakov Selkowitz2016-03-172-8/+18
| | | | | | | | | | | | | | | | | | | | Throughout, simplify the C99/C11 conditionals, and replace __STRICT_ANSI__ with the proper internal POSIX macros. The _*_r reentrant functions need not be guarded (and most haven't been) because such names in the global scope are reserved to the implementation. atoff is unique to newlib. dtoa is not actually exported (_dtoa_r is used internally), is nonstandard, and the declaration conflicts with the code included in MySQL, NSPR, and SpiderMonkey. mktemp was removed in POSIX.1-2001. The qsort_r declarations are reordered so that the GNU version retains precedence. Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
* Feature test macros overhaul: limits.hYaakov Selkowitz2016-03-171-1/+1
| | | | | | Simplify the C99 conditional, and use the internal macro for GNU extensions. Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
* Feature test macros overhaul: fnmatch.hYaakov Selkowitz2016-03-172-3/+4
| | | | | | Use the proper internal macro for GNU extensions. Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
* Feature test macros overhaul: dirent.hYaakov Selkowitz2016-03-171-3/+10
| | | | | | | | | | MAXNAMLEN is a BSDism. Use the proper internal macros instead of !_POSIX_SOURCE. telldir and seekdir are XSI, scandir and alphasort are POSIX.1-2008, and scandirat is GNU. Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
* add release message for commit 4c9bb3eCorinna Vinschen2016-03-171-0/+4
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Propagate correct Windows error if executable can't be openedCorinna Vinschen2016-03-171-0/+1
| | | | | | * spawn.cc (av::setup): Set last Win32 error if NtOpenFile fails. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add release message for commit 7346568Thomas Wolff2016-03-172-0/+10
|
* Make requested console reports workThomas Wolff2016-03-163-4/+30
| | | | | | | | | | | | | | | | | | | cf https://cygwin.com/ml/cygwin-patches/2012-q3/msg00019.html This enables the following ESC sequences: ESC[c sends primary device attributes ESC[>c sends secondary device attributes ESC[6n sends cursor position report * fhandler.h (class dev_console): Add console read-ahead buffer. (class fhandler_console): Add peek function for it (for select). * fhandler_console.cc (fhandler_console::setup): Init buffer. (fhandler_console::read): Check console read-aheader buffer. (fhandler_console::char_command): Put responses to terminal requests (device status and cursor position reports) into common console buffer (shared between CONOUT/CONIN) instead of fhandler buffer (separated). * select.cc (peek_console): Check console read-ahead buffer.
* Attempt to fix Coverity issues in sspJon Turney2016-03-151-6/+17
| | | | | | | | | | * ssp.c (lookup_thread_id): Consistently check if tix is a null pointer. (run_program): Annotate that STATUS_BREAKPOINT falls-through to STATUS_SINGLE_STEP case. (main): Guard against high_pc-low_pc overflow and malloc failure. Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
* cygwin_getaddrinfo: workaround Winsock getaddrinfo issue with broken DNSCorinna Vinschen2016-03-141-1/+10
| | | | | | | | | | | | | | | | | | Add experimental code to workaround the issue described in the thread starting at https://cygwin.com/ml/cygwin/2015-07/msg00350.html There's a hint in https://communities.vmware.com/message/2577858#2577858 that this problem is related to using the AI_ALL flag. This patch checks if GetAddrInfoW returned with WSANO_RECOVERY and if the AI_ALL flag was set, it retries GetAddrInfo without the AI_ALL flag. * net.cc (cygwin_getaddrinfo): Add experimental code to retry GetAddrInfoW without AI_ALL flag if it returned with WSANO_RECOVERY. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Don't write NULL SID ACE if it's not necessary.Corinna Vinschen2016-03-131-4/+17
| | | | | | | | | | | | | If the ACL is supposed to reflect only standard POSIX permissions, and if the permissions are so that user has more perms than group and group has more perms than other, we don't really need the NULL SID ACE. If the permissions are that simple, get_posix_access will not call AuthZ. * sec_acl.cc (set_posix_perms): Don't write NULL SID ACE if it's not required. Explain why. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Update Cygwin release message text with latest bugfixes.Corinna Vinschen2016-03-131-1/+12
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix typo which might break permission evaluationCorinna Vinschen2016-03-121-1/+1
| | | | | | | * sec_acl.cc (get_posix_access): Fix a typo checking for a_id rather than a_type. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix reading/writing Samba ACLs using RFC2307 mappingCorinna Vinschen2016-03-123-18/+82
| | | | | | | | | | | | | | | | | | | | When using RFC2307 uid/gid-mapping on Samba shares, the POSIX ACL contains the Windows SIDs. When writing back such an ACL we have to map the Windows SIDs back to the corresponding Samba SIDs representing the UNIX uid/gid value. When reading Samba SIDs, make sure never to evaluate a UNIX user account as group. * sec_acl.cc (set_posix_access): Convert Windows SIDs to RFC2307-mapped Sambe UNIX SIDs. * sec_helper.cc (cygpsid::get_id): Skip UNIX user accounts when trying to evaluate a SID as group. Skip UNIX group accounts when trying to evaluate a SID as user. * cygheap.h (cygheap_ugid_cache::reverse_get): New method to get nfs id from cygwin id. (cygheap_ugid_cache::reverse_get_uid): Wrapper for uids. (cygheap_ugid_cache::reverse_get_gid): Wrapper for gids. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add cygsid methods to create SIDs from scratchCorinna Vinschen2016-03-123-23/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | So far creating cygsids requires to generate an "S-1-..." string which is then converted to a SID by cygsid::getfromstr. Add two new methods: - cygsid::create (DWORD auth, DWORD subauth_count, ...) ... is a variable length list of subauth_count DWORD values being the actual subauths. - cygsid::append (DWORD rid) allows to append a single RID to an alreaday constituted SID. * security.h (cygsid::create): Declare public. (cygsid::append): Ditto. * sec_helper.cc (cygsid::create): Implement. (cygsid::append): Implement. * uinfo.cc (pwdgrp::fetch_account_from_windows): Use both new methods as appropriate. Drop setting csid from string. Create SID strings for printing SIDs only. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* gmon.h: Fix type of gmonparam state memberCorinna Vinschen2016-03-111-1/+4
| | | | | | | | gmonparam::state is used in calls to Win32 Interlocked functions. Having this defined as int breaks the build on i686. Redefine as LONG (same size and correct type on all platforms) to make gcc happy. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Spinlock spin with pause instructionVáclav Haisman2016-03-111-1/+19
| | | | | | | | | | | | Hi. I have noticed that Cygwin's spinlock goes into heavy sleeping code for each spin. It seems it would be a good idea to actually try to spin a bit first. There is this 'pause' instruction which let's the CPU make such busy loops be less busy. Here is a patch to do this. -- VH
* Documentation covering profiling Cygwin programs.Mark Geisert2016-03-113-1/+259
|
* Add release message for commit 8b1ede3ce11d53292036aadfcfb6043df0235f9cCorinna Vinschen2016-03-101-0/+2
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add commit 5807ba83e release message to documentationCorinna Vinschen2016-03-101-1/+8
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add release message for commit 5807ba83e498d87b52675376a81d2edfe6de098dCorinna Vinschen2016-03-101-0/+5
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>