Commit Graph

1435 Commits

Author SHA1 Message Date
Christopher Faylor a54ad580fc * dcrt0.cc: Modify define for CYGWIN_GUARD.
(alloc_stack_hard_way): Just use CYGWIN_GUARD in VirtualAlloc call.
2002-08-15 20:34:49 +00:00
Christopher Faylor bb55ce4cc1 present tense 2002-08-15 20:24:16 +00:00
Conrad Scott e120995086 * fhandler.h (fhandler_socket::recv): Remove method.
(fhandler_socket::send): Ditto.
	* fhandler_socket.cc (fhandler_socket::recv): Ditto.
	(fhandler_socket::send): Ditto.
	(fhandler_socket::read): Delegate to fhandler_socket::recvfrom.
	(fhandler_socket::write): Delegate to fhandler_socket::sendto.
	(fhandler_socket::sendto): Check for null `to' address.
	* net.cc (cygwin_sendto): Check for zero request length.
	(cygwin_recvfrom): Ditto.  Fix signature, use void *buf.
	(cygwin_recv): Delegate to cygwin_recvfrom.
	(cygwin_send): Delegate to cygwin_sendto.
2002-08-12 13:54:12 +00:00
Christopher Faylor 5ffec1d16d * cygthread.cc (cygthread::cygthread): Close another race. 2002-08-11 19:31:24 +00:00
Christopher Faylor 3cb62bd614 * assert.cc (__assert): Call debugger on assertion failure if debugging.
* dcrt0.cc (dll_crt0_1): Just wait for signal thread to go live rather than
going through the overhead of invoking it.
* fork.cc (fork_child): Ditto.
* exceptions.cc (signal_fixup_after_fork): Call sigproc_init here.
* sigproc.cc (proc_can_be_signalled): Assume that the signal thread is live.
(sig_dispatch): Ditto.
(sig_send): Ditto.
(wait_for_sigthread): Renamed from "wait_for_me".  Assume that wait_sig_inited
has been set and that this function is only called from the main thread.
* winsup.h (wait_for_sigthread): Declare new function.
2002-08-11 19:19:29 +00:00
Christopher Faylor 25859d7ca1 * environ.cc (parse_options): Remember the "no" part of any options for later
export.
2002-08-08 18:02:09 +00:00
Conrad Scott b4f06520f4 * winsup.h (__check_null_invalid_struct): Make ptr argument non-const.
(__check_null_invalid_struct_errno): Ditto.
	* miscfuncs.cc (__check_null_invalid_struct): Ditto.
	(__check_null_invalid_struct_errno): Ditto.
	(__check_invalid_read_ptr_errno): Remove superfluous cast.
	* net.cc (get): Set appropriate errno if fd is not a socket.
	(cygwin_sendto): Fix parameter checking.
	(cygwin_recvfrom): Ditto.
	(cygwin_setsockopt): Ditto.
	(cygwin_getsockopt): Ditto.
	(cygwin_connect): Ditto.
	(cygwin_gethostbyaddr): Ditto.
	(cygwin_accept): Ditto.
	(cygwin_bind): Ditto.
	(cygwin_getsockname): Ditto.
	(cygwin_listen): Ditto.
	(cygwin_getpeername): Ditto.
	(cygwin_send): Ditto.
	(cygwin_shutdown): Ditto.  Move sigframe to fhandler_socket.
	(cygwin_recvmsg): Fix parameter checking.  Add tracing.
	(cygwin_sendmsg): Ditto.
	* fhandler_socket.cc (fhandler_socket::shutdown): Add sigframe.
	* resource.cc (setrlimit): Fix parameter checking.
2002-08-08 17:03:20 +00:00
Corinna Vinschen b7e664540b Patch by Joe Buehler <jbuehler@hekimian.com>:
* sec_helper.cc (sec_acl): remove extraneous arg to debug_printf.
2002-08-08 14:16:14 +00:00
Corinna Vinschen 235d9fdadc Fix by Conrad Scott <conrad.scott@dsl.pipex.com>:
* fhandler_socket.cc (fhandler_socket::accept): Fix FIONBIO call.
2002-08-07 10:08:17 +00:00
Christopher Faylor 88de60e449 one more change 2002-08-07 01:22:56 +00:00
Christopher Faylor 772f6c3e12 * cygheap.cc (_csbrk): Avoid !cygheap considerations.
(cygheap_init): Deal with unintialized cygheap issues here.
2002-08-07 01:20:59 +00:00
Christopher Faylor e851d2fe43 Conrad Scott <conrad.scott@dsl.pipex.com
* cygheap.cc (_csbrk): Allocate some slop initially.  Don't erroneously add
sbrk amount to returned value in initial case.
2002-08-06 22:05:53 +00:00
Christopher Faylor 115a0885bc * spawn.cc (spawn_guts): Don't set mount_h here.
* sigproc.cc (init_child_info): Set it here instead.
* shared.cc (cygwin_mount_h): Make NO_COPY.
2002-08-06 05:48:33 +00:00
Christopher Faylor 1524ae42cf * cygthread.cc (cygthread::stub): Accept flag to pass info structure to thread
function.
(cygthread::operator new): Add defense debugging output.
(cygthread::cygthread): Add debugging output.  Set name after thread has been
awakened to avoid a race.
(cygthread::exit_thread): Use handle operator rather than using ev directly.
(cygthread::exit_thread): Reorganize to provide debugging.  Set __name to NULL.
* cygthread.h (cygself): Define.
* fhandler_tty.cc (fhandler_tty_master::init): Use cygself as argument so that
invoked thread can access its own info.
(process_output): Derive cygthread info of thread from thread argument.
* sigproc.cc (sigproc_init): Use cygself as argument so that invoked thread can
access its own info.
(wait_sig): Derive cygthread info of thread from thread argument.
2002-08-06 05:08:55 +00:00
Conrad Scott ffebb4fe0c * debug.h (handle_list::allocated): Remove field.
* debug.cc (newh): Don't malloc extra entries.
	(add_handle): Downgrade strace message level.
	(delete_handle): Remove case for `allocated' entries.
2002-08-06 03:40:40 +00:00
Christopher Faylor 8d0bc156ef * cygthread.cc (cygthread::stub): Change event creation to manual reset. Set
__name after calling SetEvent to prevent races.
(cygthread::detach): Always reset event here to prevent races.
2002-08-05 16:15:46 +00:00
Conrad Scott 245e4e8734 * debug.h (WaitForMultipleObjects): Correct typo. 2002-08-03 23:43:42 +00:00
Corinna Vinschen 23d93d8db7 * security.cc (verify_token): Do not reject a token just because
the supplementary group list is missing Everyone or a groupsid
	equal to usersid, or because the primary group is not in the token,
	as long as it is equal to the usersid.
	* syscalls.cc (seteuid32): Use common code for all successful returns.
	* grp.cc (getgroups32): Never includes Everyone in the output.
2002-08-02 11:00:18 +00:00
Christopher Faylor 6b2a9a2fdf * cygthread.cc (cygthread::exit_thread): Define new method.
* cygthread.h (cygthread::exit_thread): Declare new method.
* fhandler.h (fhandler_tty_master::hThread): Delete.
(fhandler_tty_master::output_thread): Define.
* fhandler_tty.cc (fhandler_tty_master::fhandler_tty_master): Adjust
constructor.
(fhandler_tty_master::init): Use cygthread rather than handle.
(process_output): Use cygthread method to exit.
(fhandler_tty_master::fixup_after_fork): Set output_thread to NULL after fork.
(fhandler_tty_master::fixup_after_exec): Set output_thread to NULL after
spawn/exec.
* tty.cc (tty_list::terminate): Detach from output_thread using cygthread
method.
2002-08-02 02:10:24 +00:00
Christopher Faylor 8a19897f17 * syscalls.cc (_link): Revert previous change and just always dereference the
oldpath.
2002-08-01 23:53:07 +00:00
Christopher Faylor e51cfd3116 * syscalls.cc (link): Properly deal with a link to a symlink. 2002-08-01 21:29:31 +00:00
Christopher Faylor 92655eab17 * cygthread.cc: Remove cruft. 2002-08-01 16:27:29 +00:00
Christopher Faylor b6bd703781 * Makefile.in (DLL_OFILES): Add cygthread.o.
* dcrt0.cc (dll_crt0_1): Eliminate various thread initialization functions in
favor of new cygthread class.
* debug.cc: Remove thread manipulation functions.
* debug.h: Ditto.
* external.cc (cygwin_internal): Use cygthread method for determining thread
name.  Remove capability for setting thread name.
* fhandler_console.cc (fhandler_console::read): Use cygthread method rather
than iscygthread function.
* fhandler_tty.cc (fhandler_tty_master::fhandler_tty_master): Use cygthread
methods to create threads.
(fhandler_tty_common::__acquire_output_mutex): Use cygthread method to retrieve
thread name.
* select.cc (pipeinf): Use cygthread pointer rather than handle.
(start_thread_pipe): Ditto.
(pipe_cleanup): Ditto.
(serialinf): Ditto.
(start_thread_serial): Ditto.
(serial_cleanup): Ditto.
(socketinf): Ditto.
(start_thread_socket): Ditto.
(socket_cleanup): Ditto.
* sigproc.cc (hwait_sig): Ditto.
(hwait_subproc): Ditto.
(proc_terminate): Ditto.
(sigproc_terminate): Ditto.
(sigproc_init): Initialize cygthread hwait_sig pointer.
(subproc_init): Initialize cygthread hwait_subproc pointer.
(wait_sig): Rely on cygthread HANDLE operator.
* strace.cc (strace::vsprntf): Use cygthread::name rather than threadname.
* window.cc (gethwnd): Use cygthread method to initialize thread.
2002-08-01 16:20:31 +00:00
Corinna Vinschen afcd48e61b * fhandler.h (fhandler_base::get_r_no_interrupt): Make non-virtual.
* net.cc (fdsock): Call set_r_no_interrupt.
2002-07-31 13:18:51 +00:00
Christopher Faylor deaa100bae * syscalls.cc (_read): Clarify debugging output. 2002-07-31 00:57:40 +00:00
Christopher Faylor c91a9a9b58 * fhandler.h (fhandler_base::get_r_no_interrupt): Make virtual. 2002-07-31 00:26:36 +00:00
Christopher Faylor 5ba08a9238 * fhandler_disk_file.cc (fhandler_cygdrive::set_drives): Incorporate . and ..
processing here.
(fhandler_cygdrive::readdir): Assume .  and ..  are already in pdrive.
(fhandler_cygdrive::seekdir): Ditto.
2002-07-30 14:17:17 +00:00
Christopher Faylor 4f9cdc9378 fix typo 2002-07-30 04:14:49 +00:00
Christopher Faylor c6ed5790b4 * dcrt0.cc (dll_crt0_1): Move debug_fixup_after_fork_exec.
* cygheap.cc (cygheap_fixup_in_child): Call debug_fixup_after_fork_exec
immediately after cygheap has ben set up.
2002-07-30 01:31:51 +00:00
Corinna Vinschen 5519d54352 * security.cc: Change some formatting.
* include/cygwin/version.h: Bump API minor version.

        * cygheap.h (class cygheap_user): Add member groups.
        * security.h (class cygsidlist): Add members type and maxcount,
        methods position, addfromgr, alloc_sids and free_sids and
        operator+= (const PSID psid). Modify contains () to call
        position () and optimize add () to use maxcount.
        (class user_groups): Create.
        Update declarations of verify_token and create_token.
        * security.cc (cygsidlist::alloc_sids): New.
        (cygsidlist::free_sids): New.
        (get_token_group_sidlist): Create from get_group_sidlist.
        (get_initgroups_sidlist): Create from get_group_sidlist.
        (get_group_sidlist): Suppress.
        (get_setgroups_sidlist): Create.
        (verify_token): Modify arguments. Add setgroups case.
        (create_token): Modify arguments. Call get_initgroups_sidlist and
        get_setgroups_sidlist as needed. Set SE_GROUP_LOGON_ID from auth_pos
        outside of the loop. Rename the various group sid lists consistently.
        * syscalls.cc (seteuid32): Modify to use cygheap->user.groups.
        (setegid32): Call cygheap->user.groups.update_pgrp.
        * grp.cc (setgroups): Create.
        (setgroups32): Create.
        * uinfo.cc (internal_getlogin): Initialize and update user.groups.pgsid.
        * cygwin.din: Add setgroups and setgroups32.
2002-07-29 12:51:52 +00:00
Christopher Faylor eb5720f255 * fhandler_console.cc (fhandler_console::read): Use appropriate kill_pgrp
method.
* select.cc (peek_console): Ditto.
* fhandler_termios.cc (fhandler_termios::bg_check): Send "stopped" signal to
entire process group as dictated by SUSv3.
* termios.cc (tcsetattr): Detect when stopped signal sent and force a stop
before setting anything.
2002-07-29 03:18:41 +00:00
Christopher Faylor 667f875d17 * include/cygwin/version.h: Bump API version to indicate that ntsec is on by
default now.
2002-07-27 01:52:05 +00:00
Christopher Faylor 6b3c247d07 * fhandler_registry.cc (fhandler_registry::close): Return any error result to
the caller.
* syscalls.cc (_close): Return result of fhandler::close to the caller.
2002-07-26 19:58:00 +00:00
Christopher Faylor 68fb3cca64 * security.cc (allow_ntsec): Default to on.
(allow_smbntsec): Default to off.
2002-07-25 17:04:13 +00:00
Christopher Faylor be18721ec4 * times.cc (to_time_t): Always round time_t down to nearest second. 2002-07-25 15:59:49 +00:00
Egor Duda b9e8058df3 * Makefile.in: Check if API version is updated when exports are
changed and stop if not so.
2002-07-25 09:09:34 +00:00
Corinna Vinschen bf47141f36 * include/cygwin/version.h: Bump minor API version. 2002-07-24 11:06:46 +00:00
Corinna Vinschen 0a73fce00c * fhandler_serial.cc: Change 'must_init_serial_line capability'
to 'supports_reading_modem_output_lines' throughout (negated meaning).
	* wincap.cc: Ditto.
	* wincap.h: Ditto.
2002-07-24 11:01:37 +00:00
Corinna Vinschen f72a851fc7 * cygwin.din (fcloseall): Add symbol for export.
(fcloseall_r): Ditto.
2002-07-24 07:38:03 +00:00
Christopher Faylor 99138976d9 * path.cc (path_conv::check): Always set fileattr when component == 0.
(readlink): Use path_conv method rather than field.
* fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): Ditto, throughout.
* path.h (path_conv): Make fileattr private.
* exceptions.cc (try_to_debug): Default to idle priority when looping.
2002-07-24 05:37:47 +00:00
Corinna Vinschen 010bb8a4a1 * fhandler_serial.cc: Use must_init_serial_line capability throughout.
* wincap.cc: Set flag must_init_serial_line appropriately.
	* wincap.h: Add flag must_init_serial_line.
2002-07-23 14:47:17 +00:00
Corinna Vinschen fdb93cd2e1 * security.cc (get_group_sidlist): Create group list from /etc files
even if DC is available but access fails.
2002-07-23 14:34:27 +00:00
Christopher Faylor 08e2551c20 * fhandler_serial.cc: Fix formatting problems introduced by below changes. 2002-07-22 14:30:30 +00:00
Corinna Vinschen 780c42b43a * fhandler.h (class fhandler_serial): Add new members of
the class - rts,dtr and method ioctl(). Variables rts and dtr
	important for Win 9x only.
	* fhandler_serial.cc (fhandler_serial::open): Add initial setting
	of dtr and rts. Important for Win 9x only.
	(fhandler_serial::ioctl): New function. Implements commands TIOCMGET,
	TIOCMSET and TIOCINQ.
	(fhandler_serial::tcflush): Fixed found error.
	(fhandler_serial::tcsetattr): Add settings of rts and dtr. Important
	for Win 9x only.
	* termios.h: Add new defines as a support for ioctl() function
	on serial device.
2002-07-22 09:11:45 +00:00
Christopher Faylor 5ec1dcc5bf * autoload.cc (LoadDLLprime): Add jmp call to allow streamlining of later jmp
rewrite.
(doit): Avoid use of cx register.  Just change one word to avoid races.
2002-07-20 04:59:15 +00:00
Corinna Vinschen 095a1272e8 * security.cc (get_unix_group_sidlist): Create.
(get_supplementary_group_sidlist): Evolve into get_unix_group_sidlist.
	(get_user_local_groups): Add check for duplicates.
	(get_user_primary_group): Suppress.
	(get_group_sidlist): Silently ignore PDC unavailability.
	Call get_unix_group_sidlist() before get_user_local_groups().
	Remove call to get_supplementary_group_sidlist(). Never call
	get_user_primary_group() as the passwd group is always included.
	Add well_known_authenticated_users_sid in only one statement.
2002-07-19 15:04:18 +00:00
Christopher Faylor 86620e8f92 * fhandler_serial.cc (fhandler_serial::tcflush): Fix typo. 2002-07-19 14:17:11 +00:00
Corinna Vinschen 315fb3afb0 * security.cc (get_group_sidlist): Fix formatting. 2002-07-15 09:06:44 +00:00
Christopher Faylor 56a42791a3 * dcrt0.cc (initial_env): Force path and CYGWIN_DEBUG contents to lower case.
* exceptions.cc (error_start_init): Use the name derived from GetModuleName
rather than myself->progname.
2002-07-15 03:48:52 +00:00
Christopher Faylor 3d0ba393df * dcrt0.cc (dll_crt0_1): Move debug_init call back to here. Avoid a compiler
warning.
* shared.cc (memory_init): Remove debug_init call.
* debug.h (handle_list): Change "clexec" to "inherited".
* debug.cc: Remove a spurious declaration.
(setclexec): Conditionalize away since it is currently unused.
(add_handle): Use inherited field rather than clexec.
(debug_fixup_after_fork_exec): Ditto.  Move debugging output to delete_handle.
(delete_handle): Add debugging output.
* fhandler.cc (fhandler_base::set_inheritance): Don't bother setting
inheritance in debugging table since the handle was never protected anyway.
(fhandler_base::fork_fixup): Ditto.
* exceptions.cc (debugger_command): Revert.
2002-07-14 19:15:32 +00:00