OSDN Git Service

* exceptions.cc (try_to_debug): Fix off-by-one problem when resetting
authorcgf <cgf>
Sat, 27 Dec 2003 00:25:02 +0000 (00:25 +0000)
committercgf <cgf>
Sat, 27 Dec 2003 00:25:02 +0000 (00:25 +0000)
environment variable after error_start detected.
* fhandler_tty_slave.cc (fhandler_tty_slave::close): Clarify debug message.
* syscalls.cc (setsid): Don't increment usecount here, since it will be
automatically decremented on close.

winsup/cygwin/ChangeLog
winsup/cygwin/exceptions.cc
winsup/cygwin/fhandler_tty.cc
winsup/cygwin/syscalls.cc

index a3cf718..a357ef4 100644 (file)
@@ -1,5 +1,15 @@
 2003-12-26  Christopher Faylor  <cgf@redhat.com>
 
+       * exceptions.cc (try_to_debug): Fix off-by-one problem when resetting
+       environment variable after error_start detected.
+
+       * fhandler_tty_slave.cc (fhandler_tty_slave::close): Clarify debug
+       message.
+       * syscalls.cc (setsid): Don't increment usecount here, since it will be
+       automatically decremented on close.
+
+2003-12-26  Christopher Faylor  <cgf@redhat.com>
+
        * exceptions.cc (setup_handler): Protect against a race.
 
 2003-12-26  Christopher Faylor  <cgf@redhat.com>
index 228d2c8..9795530 100644 (file)
@@ -350,12 +350,15 @@ try_to_debug (bool waitloop)
   char* rawenv = GetEnvironmentStrings () ;
   for (char* p = rawenv; *p != '\0'; p = strchr (p, '\0') + 1)
     {
-      if (strncmp (p, "CYGWIN=", sizeof ("CYGWIN=") - 1) == 0)
+      if (strncmp (p, "CYGWIN=", strlen ("CYGWIN=")) == 0)
        {
          char* q = strstr (p, "error_start") ;
          /* replace 'error_start=...' with '_rror_start=...' */
-         if (q) *q = '_' ;
-         SetEnvironmentVariable ("CYGWIN", p + sizeof ("CYGWIN=")) ;
+         if (q)
+           {
+             *q = '_' ;
+             SetEnvironmentVariable ("CYGWIN", p + strlen ("CYGWIN=")) ;
+           }
          break ;
        }
     }
index 60b12a9..d5cbcad 100644 (file)
@@ -620,7 +620,7 @@ fhandler_tty_slave::close ()
       if (archetype->usecount < 0)
        system_printf ("usecount %d", archetype->usecount);
 #endif
-      termios_printf ("just exiting because archetype usecount is > 0");
+      termios_printf ("just returning because archetype usecount is > 0");
       return 0;
     }
 
index 2b2e97d..ab8aeea 100644 (file)
@@ -335,7 +335,7 @@ setsid (void)
                      myself->pgid, myself->ctty, fhandler_console::open_fhs);
       if (cygheap->ctty)
        {
-         if (!--cygheap->ctty->usecount)
+         if (cygheap->ctty->usecount == 1)
            cygheap->ctty->close ();
          cygheap->ctty = NULL;
        }