зеркало из https://github.com/github/ruby.git
hash.c: GC guards
* 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:
Родитель
08b54fbd0d
Коммит
c416efa440
2
hash.c
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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче