diff options
author | Christopher Faylor <me@cgf.cx> | 2005-09-16 15:56:06 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2005-09-16 15:56:06 +0000 |
commit | 541ea31352ecb1a189143bd7822672740292e34b (patch) | |
tree | 752d75164802dc5edb51859293001f4c18e094fd /winsup | |
parent | 4dc2cfe588b87a2eab01f1a0b8369832f53b61c3 (diff) | |
download | newlib-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/ChangeLog | 10 | ||||
-rw-r--r-- | winsup/cygwin/environ.cc | 5 |
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 |