summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/environ.cc6
2 files changed, 11 insertions, 0 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index b79cde5d5..08e0781cd 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,8 @@
+2005-09-16 Christopher Faylor <cgf@timesys.com>
+
+ * environ.cc (environ_init): Issue an error if GetEnvironmentStrings
+ fails and return.
+
2005-09-15 Christopher Faylor <cgf@timesys.com>
* pinfo.h (EXITCODE_SET): Move out of range of Windows error.
diff --git a/winsup/cygwin/environ.cc b/winsup/cygwin/environ.cc
index 37d950ee0..4029cd624 100644
--- a/winsup/cygwin/environ.cc
+++ b/winsup/cygwin/environ.cc
@@ -752,7 +752,13 @@ environ_init (char **envp, int envc)
/* Allocate space for environment + trailing NULL + CYGWIN env. */
lastenviron = envp = (char **) malloc ((4 + (envc = 100)) * sizeof (char *));
+
rawenv = GetEnvironmentStrings ();
+ if (!rawenv)
+ {
+ system_printf ("GetEnvironmentStrings returned NULL, %E");
+ return;
+ }
/* Current directory information is recorded as variables of the
form "=X:=X:\foo\bar; these must be changed into something legal