From c416efa440560feeabc5736f42f270534bfabafe Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 25 Sep 2015 07:08:45 +0000 Subject: 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 --- hash.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hash.c b/hash.c index bc689a557f..ae1051d618 100644 --- a/hash.c +++ b/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; -- cgit v1.2.3