diff options
author | Christopher Faylor <me@cgf.cx> | 2011-11-24 01:58:43 +0400 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2011-11-24 01:58:43 +0400 |
commit | 5f38ec468115a6ddf2c458f2b8f9c4abfd8b0359 (patch) | |
tree | 02842aecf3c981e701c99190a13b333f73c2f8b7 /winsup/cygwin/sigproc.cc | |
parent | 9f65451e3e9b5a3a5c7c35343daee24a09d1d3a2 (diff) |
* pipe.cc (fhandler_pipe::create): Avoid derefencing a NULL pointer.
* child_info.h (child_info): Reorganize some elements so that the ones which
are initialized in a constructor are all together.
* sigproc.cc (child_info::child_info): Initialize values via the constructor
rather than as C statements and make sure that flags is set to zero initially.
* spawn.cc (child_info_spawn::worker): Use iscygwin() test for determining when
to send strace info since it is more foolproof than checking the suspend state.
Diffstat (limited to 'winsup/cygwin/sigproc.cc')
-rw-r--r-- | winsup/cygwin/sigproc.cc | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc index 43b329373..bbfed1fcd 100644 --- a/winsup/cygwin/sigproc.cc +++ b/winsup/cygwin/sigproc.cc @@ -761,10 +761,11 @@ int child_info::retry_count = 10; /* Initialize some of the memory block passed to child processes by fork/spawn/exec. */ child_info::child_info (unsigned in_cb, child_info_types chtype, - bool need_subproc_ready) + bool need_subproc_ready): + cb (in_cb), intro (PROC_MAGIC_GENERIC), magic (CHILD_INFO_MAGIC), + type (chtype), cygheap (::cygheap), cygheap_max (::cygheap_max), + flag (0), retry (child_info::retry_count) { - cb = in_cb; - /* It appears that when running under WOW64 on Vista 64, the first DWORD value in the datastructure lpReserved2 is pointing to (msv_count in Cygwin), has to reflect the size of that datastructure as used in the @@ -790,9 +791,6 @@ child_info::child_info (unsigned in_cb, child_info_types chtype, datastructure. */ msv_count = wincap.needs_count_in_si_lpres2 () ? in_cb / 5 : 0; - intro = PROC_MAGIC_GENERIC; - magic = CHILD_INFO_MAGIC; - type = chtype; fhandler_union_cb = sizeof (fhandler_union); user_h = cygwin_user_h; if (strace.attached ()) @@ -803,9 +801,6 @@ child_info::child_info (unsigned in_cb, child_info_types chtype, flag |= _CI_ISCYGWIN; } sigproc_printf ("subproc_ready %p", subproc_ready); - cygheap = ::cygheap; - cygheap_max = ::cygheap_max; - retry = child_info::retry_count; /* Create an inheritable handle to pass to the child process. This will allow the child to duplicate handles from the parent to itself. */ parent = NULL; |