diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 7df9dc310..51417e14b 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2011-03-27 Christopher Faylor + + * dll_init.cc (dll::init): Accommodate ill-behaved dlls who don't fill + out p.envptr. + 2011-03-25 Corinna Vinschen * mmap.cc (mmap64): Add a cheat to let a certain autoconf test succeed diff --git a/winsup/cygwin/dll_init.cc b/winsup/cygwin/dll_init.cc index 37f0297f1..122055722 100644 --- a/winsup/cygwin/dll_init.cc +++ b/winsup/cygwin/dll_init.cc @@ -76,7 +76,10 @@ dll::init () int ret = 1; /* This should be a no-op. Why didn't we just import this variable? */ - *(p.envptr) = __cygwin_environ; + if (!p.envptr) + p.envptr = &__cygwin_environ; + else + *(p.envptr) = __cygwin_environ; /* Don't run constructors or the "main" if we've forked. */ if (!in_forkee)