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 + + * environ.cc (environ_init): Issue an error if GetEnvironmentStrings + fails and return. + 2005-09-15 Christopher Faylor * 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