Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2005-09-16 19:56:06 +0400
committerChristopher Faylor <me@cgf.cx>2005-09-16 19:56:06 +0400
commit541ea31352ecb1a189143bd7822672740292e34b (patch)
tree752d75164802dc5edb51859293001f4c18e094fd /winsup/cygwin/environ.cc
parent4dc2cfe588b87a2eab01f1a0b8369832f53b61c3 (diff)
* environ.cc (environ_init): Protect with a 'myfault' in case
GetEnvironmentStrings misbehaves. * environ.cc (environ_init): Add debugging output with value returned from GetEnvironmentStrings.
Diffstat (limited to 'winsup/cygwin/environ.cc')
-rw-r--r--winsup/cygwin/environ.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/winsup/cygwin/environ.cc b/winsup/cygwin/environ.cc
index 4029cd624..45e1ca7bd 100644
--- a/winsup/cygwin/environ.cc
+++ b/winsup/cygwin/environ.cc
@@ -706,6 +706,10 @@ environ_init (char **envp, int envc)
bool envp_passed_in;
bool got_something_from_registry;
static char NO_COPY cygterm[] = "TERM=cygwin";
+ myfault efault;
+
+ if (efault.faulted ())
+ api_fatal ("internal error reading the windows environment - too many environment variables?");
static int initted;
if (!initted)
@@ -759,6 +763,7 @@ environ_init (char **envp, int envc)
system_printf ("GetEnvironmentStrings returned NULL, %E");
return;
}
+ debug_printf ("GetEnvironmentStrings returned %p - \"%s\"", rawenv, rawenv);
/* Current directory information is recorded as variables of the
form "=X:=X:\foo\bar; these must be changed into something legal