aboutsummaryrefslogtreecommitdiff
path: root/winsup
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2005-09-16 15:56:06 +0000
committerChristopher Faylor <me@cgf.cx>2005-09-16 15:56:06 +0000
commit541ea31352ecb1a189143bd7822672740292e34b (patch)
tree752d75164802dc5edb51859293001f4c18e094fd /winsup
parent4dc2cfe588b87a2eab01f1a0b8369832f53b61c3 (diff)
downloadnewlib-541ea31352ecb1a189143bd7822672740292e34b.zip
newlib-541ea31352ecb1a189143bd7822672740292e34b.tar.gz
newlib-541ea31352ecb1a189143bd7822672740292e34b.tar.bz2
* 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')
-rw-r--r--winsup/cygwin/ChangeLog10
-rw-r--r--winsup/cygwin/environ.cc5
2 files changed, 15 insertions, 0 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 08e0781..761df45 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,15 @@
2005-09-16 Christopher Faylor <cgf@timesys.com>
+ * environ.cc (environ_init): Protect with a 'myfault' in case
+ GetEnvironmentStrings misbehaves.
+
+2005-09-16 Christopher Faylor <cgf@timesys.com>
+
+ * environ.cc (environ_init): Add debugging output with value returned
+ from GetEnvironmentStrings.
+
+2005-09-16 Christopher Faylor <cgf@timesys.com>
+
* environ.cc (environ_init): Issue an error if GetEnvironmentStrings
fails and return.
diff --git a/winsup/cygwin/environ.cc b/winsup/cygwin/environ.cc
index 4029cd6..45e1ca7 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