diff options
author | Christopher Faylor <me@cgf.cx> | 2012-05-15 02:42:56 +0400 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2012-05-15 02:42:56 +0400 |
commit | 3de7be4c1debaa8fcd27f8fc15509179fdb37b9f (patch) | |
tree | 4172968a5e085465b58b538e6401f6ecdb92b2a6 /winsup/cygwin/DevNotes | |
parent | 77009cee1e0410a146ed4f7090e01c8a56cba670 (diff) |
* DevNotes: Add entry cgf-000007.
* child_info.h (child_info_spawn::parent_winpid): Declare new field.
(child_info_spawn::get_parent_handle): Declare new function.
* dcrt0.cc (child_info_spawn::get_parent_handle): Define new function.
(child_info_spawn::handle_spawn): Recreate parent handle if possible when
dynamically loaded. Don't mess with parent handle if it's NULL.
* spawn.cc (child_info_spawn::worker): Set parent_winpid appropriately.
Diffstat (limited to 'winsup/cygwin/DevNotes')
-rw-r--r-- | winsup/cygwin/DevNotes | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/winsup/cygwin/DevNotes b/winsup/cygwin/DevNotes index aba32f1a2..e1d2b3f61 100644 --- a/winsup/cygwin/DevNotes +++ b/winsup/cygwin/DevNotes @@ -1,3 +1,26 @@ +2012-05-14 cgf-000007 + +<1.7.16> +- Fix invocation of strace from a cygwin process. Fixes: + http://cygwin.com/ml/cygwin/2012-05/msg00292.html +</1.7.16> + +The change in cgf-000004 introduced a problem for processes which load +cygwin1.dll dynamically. strace.exe is the most prominent example of +this. + +Since the parent handle is now closed for "non-Cygwin" processes, when +strace.exe tried to dynamically load cygwin1.dll, the handle was invalid +and child_info_spawn::handle_spawn couldn't use retrieve information +from the parent. This eventually led to a strace_printf error due to an +attempt to dereference an unavailable cygheap. Probably have to fix +this someday. You shouldn't use the cygheap while attempting to print +an error about the inavailability of said cygheap. + +This was fixed by saving the parent pid in child_info_spawn and calling +OpenProcess for the parent pid and using that handle iff a process is +dynamically loaded. + 2012-05-12 cgf-000006 <1.7.16> |