* 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>
		
	
		
			
				
	
	
		
			87 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| What's new:
 | |
| -----------
 | |
| 
 | |
| - New, unified implementation of POSIX permission and ACL handling.  The
 | |
|   new ACLs now store the POSIX ACL MASK/CLASS_OBJ permission mask, and
 | |
|   they allow to inherit the S_ISGID bit.  ACL inheritance now really
 | |
|   works as desired, in a limited, but theoretically equivalent fashion
 | |
|   even for non-Cygwin processes.
 | |
| 
 | |
|   To accommodate standard Windows ACLs, the POSIX permissions of the
 | |
|   owner and all other users in the ACL are computed using the Windows
 | |
|   AuthZ API.  This may slow down the computation of POSIX permissions
 | |
|   noticably in some circumstances, but is generally more correct.  The
 | |
|   new code also ignores SYSTEM and Administrators group permissions when
 | |
|   computing the MASK/CLASS_OBJ permission mask on old ACLs, and it
 | |
|   doesn't deny access to SYSTEM and Administrators group based on the
 | |
|   value of MASK/CLASS_OBJ when creating the new ACLs.
 | |
| 
 | |
|   The new code now handles the S_ISGID bit on directories as on Linux:
 | |
|   Setting S_ISGID on a directory causes new files and subdirs created
 | |
|   within to inherit its group, rather than the primary group of the user
 | |
|   who created the file.  This only works for files and directories
 | |
|   created by Cygwin processes.
 | |
| 
 | |
| - New mount type "usertemp" which allows to mount a POSIX directory to
 | |
|   the Windows per-user temporary directory.
 | |
| 
 | |
| - cygpath has a new -U option, which creates cygdrive paths using the
 | |
|   unambiguous /proc/cygdrive prefix.
 | |
| 
 | |
| - New API: rpmatch.
 | |
| 
 | |
| 
 | |
| What changed:
 | |
| -------------
 | |
| 
 | |
| - Align setfacl(1) usage a bit closer to the usage on Linux.  Rename -d option
 | |
|   to -x, --substitute to --set.  Add --no-mask and --mask options.  Allow to
 | |
|   use the -b and -k option combined to allow reducing an ACL to only reflect
 | |
|   standard POSIX permissions.
 | |
| 
 | |
| - Fix (numeric and monetary) decimal point and thousands separator in
 | |
|   fa_IR and ps_AF locales to be aligned with Linux.
 | |
| 
 | |
| - utmpname/utmpxname are now defined as int functions as on Linux.
 | |
|   Addresses: https://cygwin.com/ml/cygwin/2015-12/msg00320.html
 | |
| 
 | |
| 
 | |
| Bug Fixes
 | |
| ---------
 | |
| 
 | |
| - Not a bug fix as such, but a workaround for new behaviour in Windows 10
 | |
|   version 1511 64 bit.  This version introduces a problem which existed in
 | |
|   a similar variation (just vice versa) in XP and Server 2003 64 bit as well.
 | |
|   An unexpected stack arrangement when starting a 64 bit Cygwin application
 | |
|   from a 32 bit application (e.g. 32 bit CMD.EXE) broke Cygwin's fork.
 | |
|   Addresses: https://cygwin.com/ml/cygwin/2015-12/msg00003.html
 | |
| 
 | |
| - Replaced old, buggy strtold implementation with well-tested gdtoa version
 | |
|   from David M. Gay.
 | |
|   Addresses: https://cygwin.com/ml/cygwin/2015-11/msg00205.html
 | |
| 
 | |
| - Fix handling of relative paths in native symlinks if the target is in a
 | |
|   drive's root dir or one level below.
 | |
|   Addresses: https://cygwin.com/ml/cygwin/2015-11/msg00277.html
 | |
| 
 | |
| - Fix a SEGV when calling `kill -l 0'.
 | |
|   Addresses: https://cygwin.com/ml/cygwin/2015-11/msg00430.html
 | |
| 
 | |
| - Fix a race condition in signal handling.
 | |
|   Addresses: https://cygwin.com/ml/cygwin/2015-11/msg00387.html
 | |
| 
 | |
| - Fix a potential crash reading invalid passwd and group entries from
 | |
|   /etc/passwd and /etc/group.
 | |
|   Addresses: https://cygwin.com/ml/cygwin/2015-12/msg00170.html
 | |
| 
 | |
| - Cygpath(1) now tries to correct the case of system directories when
 | |
|   returned as POSIX paths.
 | |
|   Addresses: https://cygwin.com/ml/cygwin/2016-01/msg00002.html
 | |
| 
 | |
| - *Always* zero out descriptor arrays when returning from select due to
 | |
|   timeout, per POSIX.
 | |
|   Addresses: https://cygwin.com/ml/cygwin/2015-12/msg00332.html
 | |
| 
 | |
| - Return unique inode numbers when calling stat/fstat on pipes and IP sockets.
 | |
|   Addresses: https://cygwin.com/ml/cygwin/2015-12/msg00310.html
 |