Commit Graph

6073 Commits

Author SHA1 Message Date
Christopher Faylor 6fcb223858 * sigproc.cc (wait_sig): Avoid uninitialized use of nb when retrying.
Consolidate two error messages into one.
2013-03-29 13:18:25 +00:00
Christopher Faylor 5e31c80e4e * sigproc.cc (pending_signals::retry): Declare new element.
(pending_signals::pending): Force an additional loop through wait_sig by
setting retry whenever this function is called.
(sig_send): Reorganize to wait for SIGHOLD at bottom.  Always add signal to
pending queue and work on whole queue rather than just the one signal.  Loop
when sigq.retry is set.  Fix long-broken check for SIGCHLD after queued
signals.
2013-03-29 01:22:14 +00:00
Christopher Faylor 1a863e04b3 * exceptions.cc (exception::handle): Generalize comment. 2013-03-28 16:14:53 +00:00
Christopher Faylor 56bc657ce4 * cygtls.h (_cygtls::signal_debugger): Change argument type.
(_cygtls::copy_context): Delete declaration.
* exceptions.cc (exception::handle): Don't call copy_context() here.  Move
signal_handler call earlier and always call it.
(_cygtls::copy_context): Delete definition.
(_cygtls::signal_debugger): Move copy_context logic here.  Suspend thread
receiving signal before gathering context information.
2013-03-09 21:55:18 +00:00
Christopher Faylor 6a375e0325 * spawn.cc (child_info_spawn::worker): Save and restore my_wr_proc_pipe around
non-execing operations to avoid handle leak seen in
http://cygwin.com/ml/cygwin/2013-03/msg00152.html .
2013-03-09 00:11:31 +00:00
Corinna Vinschen 8981489bec * include/sys/un.h (UNIX_PATH_MAX): Rename from UNIX_PATH_LEN to
follow Linux.
	* fhandler_socket.cc: Change UNIX_PATH_LEN to UNIX_PATH_MAX throughout.
	(fhandler_socket::recv_internal): Don't return prematurely in case of
	successful return.  For AF_LOCAL sockets, overwrite returned AF_INET
	name with AF_LOCAL name.
2013-03-07 15:39:35 +00:00
Corinna Vinschen b5545a7b7e * fhandler_socket.cc (fhandler_socket::bind): Fix check for AF_LOCAL
filename length to allow non-NUL terminated strings within namelen
	bytes.  Copy over sun_path to local array sun_path to have a
	NUL-terminated string for subsequent function calls.  Move path_conv
	check before OS bind call to not bind the socket before being sure
	the file doesn't exist.  Add and fix comments.
2013-03-07 11:04:28 +00:00
Corinna Vinschen bd142b93ae * mount.cc (fs_names): Add trailing NULL element to avoid potential
SEGV in format_proc_filesystems.
2013-03-06 14:10:23 +00:00
Christopher Faylor f77f82bba5 fix latest changelog description 2013-03-01 15:55:39 +00:00
Christopher Faylor aad4a3c932 * exceptions.cc (exception::handle): Eliminate buggy recursed value and just
check if we're exiting.
2013-03-01 15:48:14 +00:00
Corinna Vinschen 1ef8ce71a8 * include/pthread.h (pthread_atfork): Add missing declaration. 2013-02-26 10:32:36 +00:00
Yaakov Selkowitz 7b3739f2ae * include/error.h (error_message_count): Declare as dllimport.
(error_one_per_line): Ditto.
(error_print_progname): Ditto.
2013-02-21 03:15:47 +00:00
Corinna Vinschen 064e3a9115 * child_info.h (CURR_CHILD_INFO_MAGIC): Update.
(class child_info_fork): Drop extraneous semicolon.
2013-02-08 20:15:05 +00:00
Corinna Vinschen cf4acdbc1f * fhandler_socket.cc (fhandler_socket::bind): Fix error code for
empty filename.
2013-02-04 12:21:56 +00:00
Corinna Vinschen 188fc1cf6e * fhandler_socket.cc (fhandler_socket::bind): Fix length check of
AF_LOCAL filename so it never accesses memory beyond namelen.  Also
	make sure filename is NUL-terminated.
2013-02-04 12:04:20 +00:00
Christopher Faylor 118e51be1d * DevNotes: Add entry cgf-000022.
* cygtls.h (_cygtls::func): Define as a sa_sigaction style function.
* exceptions.cc (sig_handle_tty_stop): Ditto.
(_cygtls::interrupt_setup): Fix coercion to accommodate 'func' change.
(ctrl_c_handler): Use tty kill_pgrp to send a signal.
(sigpacket::process): Don't process sigflush here.
(_cygtls::call_signal_handler): Reorganize to avoid a race.  Always call
sa_sigaction style function.
* fhandler_termios.cc (is_flush_sig): Define new function.
(tty_min::kill_pgrp): Handle tty flush when signal detected.
(fhandler_termios::bg_check): Be slightly more paranoid about checking for
valid tty.
(fhandler_termios::sigflush): Don't flush unless tty owner.
* fhandler_tty.cc (fhandler_pty_slave::ioctl): Use tty kill_pgrp to send
signal.
(fhandler_pty_master::ioctl): Ditto.
* signal.cc (killsys): Delete definition.
* sigproc.h (killsys): Delete declaration.
* include/cygwin/signal.h (siginfo_t): Simplify union/struct nesting slightly.
Implement mechanism to allow cygwin data passing.
2013-01-31 05:26:47 +00:00
Christopher Faylor a69e27906f * miscfuncs.cc (__import_address): Check if malloc field points directly at
'malloc'.
2013-01-23 14:24:34 +00:00
Christopher Faylor 0e8c8b0093 * miscfuncs.cc (__import_address): On second thought, the chance that this
pointer could be NULL is very low so don't bother checking for it.
2013-01-23 14:06:06 +00:00
Christopher Faylor df37bdc5b7 * exceptions.cc (exception::handle): Make attempt to recursively dump stack
fatal.
2013-01-23 05:27:36 +00:00
Christopher Faylor 1fc747f37a * miscfuncs.cc (__import_address): Avoid NULL explicitly. 2013-01-23 02:06:44 +00:00
Christopher Faylor 9c4478df47 * miscfuncs.cc (__import_address): Avoid treating random instructions as import
jump.
* malloc_wrapper.cc (malloc_init): Remove comment about 64-bit.
2013-01-23 02:02:36 +00:00
Christopher Faylor 93ff4bbee0 * dcrt0.cc (dll_crt0_1): Comment assumption.
* exceptions.cc (sigpacket::setup_handler): Avoid sending signals during fork
processing.
2013-01-21 17:17:44 +00:00
Christopher Faylor 3b1a8c572f * dcrt0.cc (dll_crt0_1): Flag that we are working "incyg". Handle any signals
(presumably exiting signals) which may have come in while we are in the process
of setting up.
2013-01-21 16:56:09 +00:00
Christopher Faylor f5183c2533 * update-copyright: Recognize configure.ac scripts too. 2013-01-21 16:20:23 +00:00
Christopher Faylor 6d34849474 * cygerrno.h (__reg3): Define.
* cygmalloc.h (__reg3): Ditto.
2013-01-21 07:42:02 +00:00
Christopher Faylor a526df1e20 * cygerrno.h: Conditionally define __regN for cygserver. 2013-01-21 07:34:07 +00:00
Christopher Faylor 2033ccdd17 * malloc_wrapper.cc (malloc_init): Re-add inadvertently dropped comment which
explains what's going on with the use_internal calculation.
2013-01-21 04:43:48 +00:00
Christopher Faylor bc837d22f3 Throughout, update copyrights to reflect dates which correspond to main-branch
checkins.  Regularize copyright format.
2013-01-21 04:38:31 +00:00
Christopher Faylor 6e75c72b89 Throughout, change __attribute__ ((regparm (N))) to just __regN. Throughout,
(mainly in fhandler*) start fixing gcc 4.7.2 mismatch between regparm
definitions and declarations.
* gendef: Define some functions to take @ declaration to accommodate _regN
defines which use __stdcall.
* gentls_offsets: Define __regN macros as empty.
* autoload.cc (wsock_init): Remove unneeded regparm attribute.
* winsup.h (__reg1): Define.
(__reg2): Define.
(__reg3): Define.
* advapi32.cc (DuplicateTokenEx): Coerce some initializers to avoid warnings
from gcc 4.7.2.
* exceptions.cc (status_info): Declare struct to use NTSTATUS.
(cygwin_exception::dump_exception): Coerce e->ExceptionCode to NTSTATUS.
* fhandler_clipboard.cc (cygnativeformat): Redefine as UINT to avoid gcc 4.7.2
warnings.
(fhandler_dev_clipboard::read): Ditto.
2013-01-21 04:34:52 +00:00
Christopher Faylor d89e61f354 * update-copyright (update_maybe): Accommodate perl-style copyright comments. 2013-01-21 04:30:27 +00:00
Christopher Faylor eb0876b22f * update-copyright: Silently skip nonexistent files. Display filename on
update.  Don't update non-Red Hat copyrights.
2013-01-21 03:55:55 +00:00
Christopher Faylor 0413f0bd40 * update-copyright: Update standard copyright information based on cvs log and
current sandbox status.
2013-01-20 23:56:26 +00:00
Christopher Faylor 4713b1b294 * malloc_wrapper.cc: Change 'use_internal_malloc' to 'use_internal' throughout.
(export_malloc_called): Delete.
(internal_malloc_determined): New variable.
(malloc_init): Control calculation of internal/external malloc based on
'internal_malloc_determined'.  Use import_address() to determine if malloc in
user_data is ours or not.
* miscfuncs.cc (thread_wrapper): Make static.
(__import_address): Define new function.
* miscfuncs.h (import_address): New define.
(__import_address): Declare new function.
2013-01-20 22:59:58 +00:00
Christopher Faylor 1471537a8f * sigproc.cc (sig_dispatch_pending): Add correct regparm attributes to match
declaration.
(pid_exists): Ditto.
(proc_subproc): Ditto.
(sig_clear): Ditto.
(sig_send): Ditto.
(checkstate): Ditto.
2013-01-20 06:34:59 +00:00
Corinna Vinschen a32a9a87a1 * syscalls.cc (rename): Remove ill-conceived NFS workaround from
2013-01-10 for self-inflicted NFS server problem.
2013-01-19 14:54:18 +00:00
Christopher Faylor d5c977948b * exceptions.cc (ctrl_c_handler): Remove special-case handler for
"cygwin_finished_initializing".
* sigproc.cc (exit_thread): Undefine ExitThread earlier to avoid recursion on
error return.
2013-01-19 05:57:06 +00:00
Corinna Vinschen 5d858e49eb * errno.cc (errmap): Map ERROR_LOCK_VIOLATION to EBUSY. 2013-01-18 16:09:51 +00:00
Corinna Vinschen b31aa3904c * mmap.cc (handler_disk_file::msync): Add call to FlushFileBuffers
to implement MS_SYNC.
2013-01-18 09:35:05 +00:00
Christopher Faylor c5eb7a4971 * mmap.cc (handler_disk_file::msync): Retry up to 99 times if FlushViewOFile
fails with ERROR_LOCK_VIOLATION.
2013-01-18 00:28:21 +00:00
Christopher Faylor 211dd84b83 * sigproc.cc (no_signals_available): Finally remove this macro entirely.
(exit_thread): Ensure process lock is released on error exit.
(sig_send): Simplify "its_me" test.  Remove no_signals_available tests.
2013-01-16 23:04:28 +00:00
Christopher Faylor b01065f174 * pthread.cc (pthread_exit): Add kludge to accommodate noreturn attribute. 2013-01-16 19:20:59 +00:00
Christopher Faylor 18905f5551 fix typo 2013-01-14 22:24:36 +00:00
Christopher Faylor b8540dae6c * include/pthread.h (pthread_exit): Mark as "noreturn". 2013-01-14 21:17:37 +00:00
Christopher Faylor b712b4408a * exceptions.cc (signal_exit): Move captive process termintation...
(_cygtls::interrupt_setup): ...into here.
(sigpacket::process): Simplify setting of handler when have_execed.
(_cygtls::interrupt_setup): Don't call proc_subproc when we've execed.
* globals.cc (exit_states): Delete unneeded ES_EXEC_EXIT.
* pinfo.cc (pinfo::exit): Change debugging output.  Call proc_terminate rather
than the now-obsolete sigproc_terminate.  Don't set exit_state to ES_EXEC_EXIT.
Set exit_state to ES_FINAL later.
* sigproc.cc (sigproc_terminate): Delete function.
(wait_sig): Don't call proc_subproc if have_execed.
* sigproc.h (sigproc_terminate): Delete declaration.
* sync.h (lock_process::lock_process): Don't set exit_state to
ES_PROCESS_LOCKED.
(lock_process::operator LONG): Define.
2013-01-14 06:03:59 +00:00
Christopher Faylor 2f47bbd555 * DevNotes: Add entry cgf-000021.
* select.cc (select): Unconditionally return when a signal is detected.
(select_stuff::wait): Ditto.
2013-01-11 15:36:40 +00:00
Corinna Vinschen 7142197465 * syscalls.cc (rename): Drop handling paths > 32757 chars, emit EINVAL
instead, thus simplifying code allocating and filling pfri.  Drop size
	and use constant expression in NtSetInformationFile call.  Add comments.
	Drop redundant test for fs_serial_number and change comment accordingly.
2013-01-11 12:34:41 +00:00
Corinna Vinschen 09707415eb * fhandler.h (class dev_console): Flag for expanded control sequence.
* fhandler_console.cc (char_command): Supporting cursor style modes.
2013-01-11 11:04:50 +00:00
Corinna Vinschen 34ce80888a * path.h (path_conv::fs_type): New method.
* syscalls.cc (rename): Check for cross-device situation before
	touching anything.  Explain why.  Workaround NFS bug in call to
	NtSetInformationFile(FileRenameInformation).
2013-01-10 15:08:22 +00:00
Corinna Vinschen 2b814a1937 * cygerrno.h: Fix copyright.
* exceptions.cc: Drop comment explaining removed variable.
2013-01-09 16:25:15 +00:00
Corinna Vinschen 85d8e389cd * dcrt0.cc (main_thread_sinit): New inline function. Fix and explain
a stdio initialization issue.
	(dll_crt0_1): Call main_thread_sinit rather than __sinit.
2013-01-09 14:23:44 +00:00