diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 03e41da5b..10b9a1bd4 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,7 @@ +2005-07-29 Arto Huusko + + * fork.cc (fork_parent): Fix null deref if pinfo creation fails. + 2005-07-28 Christopher Faylor * cygmalloc.h (MSPACES): Define. This dropped through the cracks after diff --git a/winsup/cygwin/fork.cc b/winsup/cygwin/fork.cc index 649baa3e3..6ed515b64 100644 --- a/winsup/cygwin/fork.cc +++ b/winsup/cygwin/fork.cc @@ -370,8 +370,6 @@ fork_parent (HANDLE&, dll *&first_dll, bool& load_dlls, void *stack_here, child_ int child_pid = cygwin_pid (pi.dwProcessId); pinfo child (child_pid, 1); - child->start_time = time (NULL); /* Register child's starting time. */ - child->nice = myself->nice; if (!child) { @@ -381,6 +379,9 @@ fork_parent (HANDLE&, dll *&first_dll, bool& load_dlls, void *stack_here, child_ goto cleanup; } + child->start_time = time (NULL); /* Register child's starting time. */ + child->nice = myself->nice; + /* Initialize things that are done later in dll_crt0_1 that aren't done for the forkee. */ strcpy (child->progname, myself->progname);