summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin
Commit message (Collapse)AuthorAgeFilesLines
...
* Use NtQueryObject to detect closing the last master handleCorinna Vinschen2015-05-282-8/+29
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* * net.cc: Define _NETIOAPI_H_ to accomodate newer w32api.Takashi Yano2015-05-272-1/+6
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Bump minor DLL version to 2cygwin-2_0_2-releaseCorinna Vinschen2015-05-032-1/+5
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Bump minor DLL version to 1cygwin-2_0_1-releaseCorinna Vinschen2015-04-303-1/+13
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Use all ACEs from original ACL on Samba shareCorinna Vinschen2015-04-302-3/+8
| | | | | | | * security.cc (convert_samba_sd): Fix accidental dropping of all non-Unix User, non-Unix Group accounts. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Define __s64 and __u64cygwin-2_0_0-releaseCorinna Vinschen2015-04-272-1/+9
| | | | | | * include/asm/types.h: Add __s64 and __u64 types. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Document previous unlink patchCorinna Vinschen2015-04-231-0/+6
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Handle unlinking in-use files on virtual drivesCorinna Vinschen2015-04-234-3/+46
| | | | | | | | | | * 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. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix closing too many handles in pty fchown/fchmodCorinna Vinschen2015-04-232-3/+5
| | | | | | | * fhandler_tty.cc (fhandler_pty_slave::fch_close_handles): Don't close handles not opened via fhandler_pty_slave::fch_open_handles. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix OPOST for non-Cygwin pty slavesTakashi Yano2015-04-235-19/+178
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Undef basename before defining function.Corinna Vinschen2015-04-232-0/+7
| | | | | | | * path.cc (basename): Undefine basename before defining function to avoid type collision with prototype in string.h. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Remove Cygwin's libgen.hCorinna Vinschen2015-04-232-23/+4
| | | | | | * include/libgen.h: Remove in favor of newlib version. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix broken SID in passwd/group entry for unkown accountCorinna Vinschen2015-04-232-1/+6
| | | | | | | * uinfo.cc (pwdgrp::fetch_account_from_windows): Always revert SID subauth count after checking for known domain. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix broken PSID problem on cygheap in account handlingCorinna Vinschen2015-04-234-4/+20
| | | | | | | | | | * 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. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Don't rely on size argument in shmget callCorinna Vinschen2015-04-233-1/+17
| | | | | | | | * shm.cc (shmget): Fetch segment size from server rather than using size argument to accommodate existing segments. Add comment to explain why. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Bump Cygwin version to 2.0.0.Corinna Vinschen2015-04-233-2/+7
| | | | | | | | | | * include/cygwin/version.h (CYGWIN_VERSION_DLL_MAJOR): Bump to 2000. (CYGWIN_VERSION_DLL_MINOR): Set to 0. * new-features.xml (ov-new2.0): Rename from ov-new1.7.36 and change version number to 2.0. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Set mcontext.cr2 to the faulting addressJon TURNEY2015-04-232-0/+9
| | | | | | | * exceptions.cc (call_signal_handler): Set mcontext.cr2 to the faulting address. Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
* Only construct ucontext for SA_SIGINFO signal handlersJon TURNEY2015-04-232-22/+38
| | | | | | | | * exceptions.cc (call_signal_handler): Only bother to construct the ucontext for signal handlers with SA_SIGINFO set. Set mcontext.oldmask. Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
* Initialize context before RtlContextCaptureJon TURNEY2015-04-232-2/+11
| | | | | | | * exceptions.cc (call_signal_handler): Zero initialize context and set context flags, as RlCaptureContext doesn't. Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
* Call open_null to open fake handleCorinna Vinschen2015-04-232-2/+6
| | | | | | * fhandler_dsp.cc (fhandler_dev_dsp::open): Call open_null. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Introduce sidfromuid and sidfromgidCorinna Vinschen2015-04-234-14/+30
| | | | | | | | | * 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. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Remove __acl16 from official headerCorinna Vinschen2015-04-233-10/+11
| | | | | | | * include/cyggwin/acl.h (struct __acl16): Move from here... * sec_acl.cc: ...to here. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Remove unused 32/64 bit tty codeCorinna Vinschen2015-04-232-18/+8
| | | | | | | * tty.h (class tty): Remove unused 32/64 bit interoperability considerations. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Raise # of ptys to 128.Corinna Vinschen2015-04-235-3154/+6324
| | | | | | | | * tty.h (NTTYS): Raise to 128. * devices.in: Change pty, ptym, and cons expressions accordingly. * devices.cc: Regenerate. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Compile exceptions.cc with -fno-omit-frame-pointer on x86Jon TURNEY2015-04-232-52/+13
| | | | | | | | | | | | | | Selectively using -fomit-frame-pointer when -O is used doesn't make sense anymore, apparently since gcc 4.6, -O implies -fomit-frame-pointer. exceptions.cc must be compiled with -fno-omit-frame-pointer on x86, as it uses RtlCaptureContext, which requires a frame pointer. * 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. Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
* Cygwin hangs up if several keys are typed during outputting a lot of texts.Takashi Yano2015-04-232-1/+6
| | | | | | | * fhandler_tty.cc (fhandler_pty_slave::read): Change calculation of "readlen" not to use "bytes_in_pipe" value directly. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Try to make sure struct _mcontext is 16-byte alignedJon TURNEY2015-04-233-3/+8
| | | | | | | | | | | | | | | | | | On x86_64, RtlCaptureContext() uses fxsave to save FPU/MMX/SSE state. fxsave requires that the destination address is 16-byte aligned, or it will fault. CONTEXT is already annotated __attribute__ ((aligned (16))), do the same with struct _mcontext. Rearrange ucontext_t so that it's struct _mcontext element is also correctly aligned. * include/cygwin/signal.h (struct __mcontext): 16-byte align. * include/sys/ucontext.h (ucontext_t): Ditto. Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
* Drop local stdint.h and inttypes.h in favor of newlib filesCorinna Vinschen2015-04-234-544/+7
| | | | | | | | * 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. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Provide ucontext to signal handlersJon TURNEY2015-04-234-2/+70
| | | | | | | | | | | | | | Add ucontext.h header, defining ucontext_t and mcontext_t types. Provide sigaction sighandlers with a ucontext_t parameter, containing stack and context information. * include/sys/ucontext.h : New header. * include/ucontext.h : Ditto. * exceptions.cc (call_signal_handler): Provide ucontext_t parameter to signal handler function. Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
* Add cygwin_internal() operation to retrieve the EXCEPTION_RECORD from a ↵Jon TURNEY2015-04-234-1/+26
| | | | | | | | | | | siginfo_t * * 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. Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
* Rename struct ucontext to struct __mcontextJon TURNEY2015-04-232-9/+26
| | | | | | | | | * 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. Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
* Fix UTF-16 surrogate handling in wctomb and friends.Corinna Vinschen2015-04-231-0/+3
| | | | | | | * libc/stdlib/wctomb_r.c (__utf8_wctomb): Fix check for handling a lone high surrogate. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Avoid potential crash at startup or in getgroups(2).Corinna Vinschen2015-04-233-1/+13
| | | | | | | * grp.cc (internal_getgroups): Handle negative domain index to avoid crashes. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix buffer size error handling in gethostname.Renato Silva2015-04-232-1/+8
| | | | | | * net.cc (cygwin_gethostname): Fix buffer size error handling. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add release msgCorinna Vinschen2015-04-231-0/+10
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Don't allow fully qualified Windows account names.Corinna Vinschen2015-04-232-0/+12
| | | | | | | * uinfo.cc (pwdgrp::fetch_account_from_windows): Don't allow fully qualified Windows account names (domain\user or user@domain). Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add _tzset_unlocked and _tzset_unlocked_rCorinna Vinschen2015-04-232-0/+14
| | | | | | | | | | | | | | | | | | | newlib: * libc/time/local.h (_tzset_unlocked_r): Add prototype. (_tzset_unlocked): Ditto. * libc/time/tzset.c (_tzset_unlocked): New function, call _tzset_unlocked_r. (tzset): Lock and call _tzset_unlocked_r. * libc/time/tzset_r (_tzset_unlocked_r): Remove locking and rename from _tzset_r. (_tzset_r): Lock and call _tzset_unlocked_r. cygwin: * localtime.cc (tzset_unlocked): Export as _tzset_unlocked. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* cygwin: add GNU basename(3)Yaakov Selkowitz2015-04-233-0/+34
| | | | | | | | | | winsup/cygwin/ * common.din (__gnu_basename): Export. * path.cc (__gnu_basename): New function. winsup/doc/ * posix.xml (std-gnu): Add basename. (std-notes): Add note about two forms of basename.
* Try best to handle user from domain not in trusted domain list.Corinna Vinschen2015-04-233-4/+45
| | | | | | | | | | * 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. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Prepare to rename/reuse struct ucontext.Corinna Vinschen2015-04-236-112/+120
| | | | | | | | | * 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. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add CMIN and CTIME definitionsCorinna Vinschen2015-04-233-4/+11
| | | | | | | * include/sys/termios.h: Add CMIN and CTIME. * fhandler_termios.cc (fhandler_termios::tcinit): Use CMIN and CTIME. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Bump tty.cc copyright dateCorinna Vinschen2015-04-231-1/+1
|
* TIOCPKT mode of PTY is broken if ONLCR bit is cleared.Takashi Yano2015-04-237-132/+168
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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". Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Ignore __STDC_{FORMAT,LIMIT,CONSTANT}_MACROSCorinna Vinschen2015-04-233-23/+9
| | | | | | | | | Per glibc BZ #15366: * inttypes.h: Drop __STDC_FORMAT_MACROS consideration. * stdint.h: Drop __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS consideration. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Drop cygwin/_types.h.Corinna Vinschen2015-04-232-16/+4
| | | | | | * include/cygwin/_types.h: Drop unused file. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Implmenet faster getfrompw/getfromgrCorinna Vinschen2015-03-187-18/+43
| | | | | | | | | | | | | | | | | | * 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. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Drop unneeded passwd argument from security functionsCorinna Vinschen2015-03-185-18/+31
| | | | | | | | | | | | | | | | * 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. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Drop unused timeoput paramter to internal_getloginCorinna Vinschen2015-03-174-7/+9
| | | | | | | | * grp.cc (internal_getgroups): Drop unused timeout parameter. * pwdgrp.h (internal_getgroups): Ditto in prototype. * uinfo.cc (internal_getlogin): Ditto in usage. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Avoid name change if script is called via symlink from execvp et al.Corinna Vinschen2015-03-173-6/+14
| | | | | | | * spawn.cc (find_exec): Fix a name change in case of a symlink which can be opened as is. Signed-off-by: Corinna Vinschen <vinschen@redhat.com>
* Teach stackinfo::walk() how to virtually unwind the tls sigstackJon TURNEY2015-03-133-0/+21
| | | | | | | | | | This improves how stackinfo::dumpstack() dumps _sigbe and sigdelayed frames * exceptions.cc (stack_info): Add sigstackptr member. (walk): Unwind sigstackptr inside _sigbe and sigdelayed. * gendef (_sigdelayed_end): Add symbol to mark end of sigdelayed. Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>