OSDN Git Service

* cygcheck.cc (load_cygwin): Duplicate argv list since it disappears when
authorcgf <cgf>
Mon, 4 Aug 2008 15:30:06 +0000 (15:30 +0000)
committercgf <cgf>
Mon, 4 Aug 2008 15:30:06 +0000 (15:30 +0000)
cygwin1.dll is unloaded.

winsup/utils/ChangeLog
winsup/utils/cygcheck.cc

index 7eea854..abab8df 100644 (file)
@@ -1,3 +1,8 @@
+2008-08-04  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * cygcheck.cc (load_cygwin): Duplicate argv list since it disappears
+       when cygwin1.dll is unloaded.
+
 2008-07-30  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
 
        * Makefile.in: Link cygcheck with -lntdll even without mingw-zlib.
index f04fcf2..a8a45bc 100644 (file)
@@ -2024,8 +2024,15 @@ load_cygwin (int& argc, char **&argv)
     {
       char **av = (char **) cygwin_internal (CW_ARGV);
       if (av && ((DWORD) av != (DWORD) -1))
-       for (argc = 0, argv = av; *av; av++)
-         argc++;
+       {
+         /* Copy cygwin's idea of the argument list into this Window application. */
+         for (argc = 0; av[argc]; argc++)
+           continue;
+         argv = (char **) calloc (argc + 1, sizeof (char *));
+         for (char **argvp = argv; *av; av++)
+           *argvp++ = strdup (*av);
+       }
+
 
       char **envp = (char **) cygwin_internal (CW_ENVP);
       if (envp && ((DWORD) envp != (DWORD) -1))