Bug #1679: rb_w32_getenv() invalidates previous environment pointers
http://redmine.ruby-lang.org/issues/show/1679

Author: Jarek Jurasz
Status: Open, Priority: Normal
ruby -v: ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32]

On Windows turning on page heap (gflags -p /enable ruby.exe /full) revealed that environment pointers returned by rb_w32_getenv() get invalidated on the next call to this function due to the freeing of the environment buffer.
In particular getenv("RUBYLIB_PREFIX") in rubylib_mangle() frees getenv("RUBYLIB") fetched in ruby_init_loadpath(). This bug is also present in ruby 1.9.1-p129.

The workaround - the RTL version of getenv() - worked fine for me so far.


----------------------------------------
http://redmine.ruby-lang.org