* 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.
This commit is contained in:
Christopher Faylor 2002-07-30 01:31:51 +00:00
parent 60d99bce80
commit c6ed5790b4
4 changed files with 38 additions and 33 deletions

View File

@ -1,3 +1,9 @@
2002-07-29 Christopher Faylor <cgf@redhat.com>
* 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-29 Corinna Vinschen <corinna@vinschen.de> 2002-07-29 Corinna Vinschen <corinna@vinschen.de>
* security.cc: Change some formatting. * security.cc: Change some formatting.
@ -5,29 +11,30 @@
2002-07-28 Pierre Humblet <Pierre.Humblet@ieee.org> 2002-07-28 Pierre Humblet <Pierre.Humblet@ieee.org>
* cygheap.h (class cygheap_user): Add member groups. * cygheap.h (class cygheap_user): Add member groups.
* security.h (class cygsidlist): Add members type and maxcount, * security.h (class cygsidlist): Add members type and maxcount, methods
methods position, addfromgr, alloc_sids and free_sids and position, addfromgr, alloc_sids and free_sids and operator+= (const
operator+= (const PSID psid). Modify contains () to call PSID psid). Modify contains () to call position () and optimize add ()
position () and optimize add () to use maxcount. to use maxcount.
(class user_groups): Create. (class user_groups): Create. Update declarations of verify_token and
Update declarations of verify_token and create_token. create_token.
* security.cc (cygsidlist::alloc_sids): New. * security.cc (cygsidlist::alloc_sids): New.
(cygsidlist::free_sids): New. (cygsidlist::free_sids): New.
(get_token_group_sidlist): Create from get_group_sidlist. (get_token_group_sidlist): Create from get_group_sidlist.
(get_initgroups_sidlist): Create from get_group_sidlist. (get_initgroups_sidlist): Create from get_group_sidlist.
(get_group_sidlist): Suppress. (get_group_sidlist): Suppress.
(get_setgroups_sidlist): Create. (get_setgroups_sidlist): Create.
(verify_token): Modify arguments. Add setgroups case. (verify_token): Modify arguments. Add setgroups case.
(create_token): Modify arguments. Call get_initgroups_sidlist and (create_token): Modify arguments. Call get_initgroups_sidlist and
get_setgroups_sidlist as needed. Set SE_GROUP_LOGON_ID from auth_pos get_setgroups_sidlist as needed. Set SE_GROUP_LOGON_ID from auth_pos
outside of the loop. Rename the various group sid lists consistently. outside of the loop. Rename the various group sid lists consistently.
* syscalls.cc (seteuid32): Modify to use cygheap->user.groups. * syscalls.cc (seteuid32): Modify to use cygheap->user.groups.
(setegid32): Call cygheap->user.groups.update_pgrp. (setegid32): Call cygheap->user.groups.update_pgrp.
* grp.cc (setgroups): Create. * grp.cc (setgroups): Create.
(setgroups32): Create. (setgroups32): Create.
* uinfo.cc (internal_getlogin): Initialize and update user.groups.pgsid. * uinfo.cc (internal_getlogin): Initialize and update
* cygwin.din: Add setgroups and setgroups32. user.groups.pgsid.
* cygwin.din: Add setgroups and setgroups32.
2002-07-28 Christopher Faylor <cgf@redhat.com> 2002-07-28 Christopher Faylor <cgf@redhat.com>
@ -61,7 +68,7 @@
2002-07-25 Egor Duda <deo@logos-m.ru> 2002-07-25 Egor Duda <deo@logos-m.ru>
* Makefile.in: Check if API version is updated when exports are * Makefile.in: Check if API version is updated when exports are
changed and stop if not so. changed and stop if not so.
2002-07-24 Egor Duda <deo@logos-m.ru> 2002-07-24 Egor Duda <deo@logos-m.ru>
@ -742,14 +749,13 @@
2002-06-25 Thomas Pfaff <tpfaff@gmx.net> 2002-06-25 Thomas Pfaff <tpfaff@gmx.net>
* include/pthread.h (PTHREAD_CANCELED): Defined a reasonable * include/pthread.h (PTHREAD_CANCELED): Defined a reasonable value.
value.
* pthread.cc (pthread_exit): Call method instead of function. * pthread.cc (pthread_exit): Call method instead of function.
(pthread_setcancelstate): Ditto. (pthread_setcancelstate): Ditto.
(pthread_setcanceltype): Ditto. (pthread_setcanceltype): Ditto.
(pthread_testcancel): Ditto. (pthread_testcancel): Ditto.
* thread.h (pthread::cancel_event): New member. * thread.h (pthread::cancel_event): New member.
(__pthread_cancel_self): New prototype. (__pthread_cancel_self): New prototype.
(pthread::exit): New Method. (pthread::exit): New Method.
(pthread::cancel): Ditto. (pthread::cancel): Ditto.
(pthread::testcancel): Ditto. (pthread::testcancel): Ditto.
@ -762,16 +768,16 @@
(__pthread_setcancelstate): Ditto. (__pthread_setcancelstate): Ditto.
(__pthread_setcanceltype): Ditto. (__pthread_setcanceltype): Ditto.
(__pthread_testcancel): Ditto. (__pthread_testcancel): Ditto.
* thread.cc (pthread::pthread): Inititialize cancel_event. * thread.cc (pthread::pthread): Inititialize cancel_event.
(pthread::~pthread): Close cancel_event if needed. (pthread::~pthread): Close cancel_event if needed.
(pthread::create): Create cancel_event. (pthread::create): Create cancel_event.
(pthread::exit): New method. Replacement for __pthread_exit. (pthread::exit): New method. Replacement for __pthread_exit.
(pthread::cancel): New method. (pthread::cancel): New method.
(pthread::testcancel): Ditto. (pthread::testcancel): Ditto.
(pthread::static_cancel_self); New static method. (pthread::static_cancel_self); New static method.
(pthread::setcancelstate): New method. Replacement for (pthread::setcancelstate): New method. Replacement for
__pthread_setcancelstate. __pthread_setcancelstate.
(pthread::setcanceltype): New method. Replacement for (pthread::setcanceltype): New method. Replacement for
__pthread_setcanceltype. __pthread_setcanceltype.
(pthread::pop_cleanup_handler): Added lock for async cancel safe (pthread::pop_cleanup_handler): Added lock for async cancel safe
cancellation. cancellation.

View File

@ -146,6 +146,7 @@ cygheap_fixup_in_child (bool execed)
ForceCloseHandle1 (child_proc_info->cygheap_h, passed_cygheap_h); ForceCloseHandle1 (child_proc_info->cygheap_h, passed_cygheap_h);
cygheap_init (); cygheap_init ();
debug_fixup_after_fork_exec ();
if (execed) if (execed)
{ {

View File

@ -627,7 +627,6 @@ dll_crt0_1 ()
CloseHandle (spawn_info->hexec_proc); CloseHandle (spawn_info->hexec_proc);
if (close_ppid_handle) if (close_ppid_handle)
CloseHandle (child_proc_info->pppid_handle); CloseHandle (child_proc_info->pppid_handle);
debug_fixup_after_fork_exec ();
} }
/* Initialize the cygwin subsystem if this is the first process, /* Initialize the cygwin subsystem if this is the first process,

View File

@ -128,7 +128,6 @@ fhandler_pipe::dup (fhandler_base *child)
return 0; return 0;
} }
int int
make_pipe (int fildes[2], unsigned int psize, int mode) make_pipe (int fildes[2], unsigned int psize, int mode)
{ {