From 502e19fd10f08898d76f31f43b3f332a3f05e1a2 Mon Sep 17 00:00:00 2001 From: matz Date: Tue, 8 Apr 2008 01:40:49 +0000 Subject: [PATCH] * load.c (rb_require_safe): should check fname path after $SAFE is properly set. [ruby-dev:34268] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15923 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ load.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 79b3857004..61494b675c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Apr 8 10:34:10 2008 Yukihiro Matsumoto + + * load.c (rb_require_safe): should check fname path after $SAFE is + properly set. [ruby-dev:34268] + Tue Apr 8 10:30:29 2008 Nobuyoshi Nakada * common.mk (prelude.c): depends on enc/prelude.rb. diff --git a/load.c b/load.c index a2ffce4e4b..0072ed75ac 100644 --- a/load.c +++ b/load.c @@ -520,8 +520,6 @@ rb_require_safe(VALUE fname, int safe) } volatile saved; char *volatile ftptr = 0; - FilePathValue(fname); - RB_GC_GUARD(fname) = rb_str_new4(fname); PUSH_TAG(); saved.safe = rb_safe_level(); if ((state = EXEC_TAG()) == 0) { @@ -530,6 +528,8 @@ rb_require_safe(VALUE fname, int safe) int found; rb_set_safe_level_force(safe); + FilePathValue(fname); + RB_GC_GUARD(fname) = rb_str_new4(fname); found = search_required(fname, &path); if (found) { if (!path || !(ftptr = load_lock(RSTRING_PTR(path)))) {