OSDN Git Service

* pinfo.cc (pinfo::exit): Don't access self after releasing it.
authorcorinna <corinna>
Thu, 13 Jan 2005 22:18:56 +0000 (22:18 +0000)
committercorinna <corinna>
Thu, 13 Jan 2005 22:18:56 +0000 (22:18 +0000)
* path.h (path_conv::path_conv): Fill path with native device
name in case of device argument.

winsup/cygwin/ChangeLog
winsup/cygwin/path.h
winsup/cygwin/pinfo.cc

index 4002c94..34e5b75 100644 (file)
@@ -1,5 +1,11 @@
 2005-01-13  Corinna Vinschen  <corinna@vinschen.de>
 
+       * pinfo.cc (pinfo::exit): Don't access self after releasing it.
+       * path.h (path_conv::path_conv): Fill path with native device
+       name in case of device argument.
+
+2005-01-13  Corinna Vinschen  <corinna@vinschen.de>
+
        * fhandler_serial.cc (fhandler_serial::dup): Call overlapped_setup
        for child, not for parent.
 
index 743246f..569d456 100644 (file)
@@ -169,7 +169,10 @@ class path_conv
              const suffix_info *suffixes = NULL)  __attribute__ ((regparm(3)));
 
   path_conv (const device& in_dev): fileattr (INVALID_FILE_ATTRIBUTES),
-     path_flags (0), known_suffix (NULL), error (0), dev (in_dev) {}
+     path_flags (0), known_suffix (NULL), error (0), dev (in_dev)
+    {
+      strcpy (path, in_dev.native);
+    }
 
   path_conv (int, const char *src, unsigned opt = PC_SYM_FOLLOW,
             const suffix_info *suffixes = NULL)
index 3782126..c9f40d0 100644 (file)
@@ -140,13 +140,14 @@ pinfo::exit (DWORD n)
   set_exit_state (PID_EXITED);
   if (n != EXITCODE_EXEC)
     self->alert_parent (0);
+  int exitcode = self->exitcode;
   release ();
   
   _my_tls.stacklock = 0;
   _my_tls.stackptr = _my_tls.stack;
   sigproc_printf ("Calling ExitProcess hProcess %p, n %p, exitcode %p",
-                 hProcess, n, self->exitcode);
-  ExitProcess (self->exitcode);
+                 hProcess, n, exitcode);
+  ExitProcess (exitcode);
 }
 # undef self