This patch fixes null deref in fork_parent() when pinfo::init fails.

I'm sorry the patch is not against CVS, but I am unable to use CVS from
where I work. If this is not acceptable, please tell me, and I can try
to do this from home.

In any case, the patch is against fork.cc rev 1.156.


2005-07-29  Arto Huusko  <[EMAIL PROTECTED]>

        * fork.cc (fork_parent): Fix null deref if creation of pinfo
        of the child fails.

--- fork.cc	2005-07-29 11:24:53.252749235 +0300
+++ fork.cc.fixed	2005-07-29 11:25:07.296216663 +0300
@@ -370,8 +370,6 @@ fork_parent (HANDLE&, dll *&first_dll, b
 
   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, b
       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);

Reply via email to