* hash.c (env_delete, env_aset): prevent environment variable
  names from GC while ruby_setenv.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51935 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2015-09-25 07:08:45 +00:00
Родитель 08b54fbd0d
Коммит c416efa440
1 изменённых файлов: 2 добавлений и 0 удалений

2
hash.c
Просмотреть файл

@ -2816,6 +2816,7 @@ env_delete(VALUE obj, VALUE name)
ruby_setenv(nam, 0);
if (ENVMATCH(nam, PATH_ENV)) {
RB_GC_GUARD(name);
path_tainted = 0;
}
return value;
@ -3151,6 +3152,7 @@ env_aset(VALUE obj, VALUE nm, VALUE val)
ruby_setenv(name, value);
if (ENVMATCH(name, PATH_ENV)) {
RB_GC_GUARD(nm);
if (OBJ_TAINTED(val)) {
/* already tainted, no check */
path_tainted = 1;