summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-04-08 01:40:49 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-04-08 01:40:49 +0000
commit502e19fd10f08898d76f31f43b3f332a3f05e1a2 (patch)
treec4d6052017bf192a4eb9e4c62d4118d10cbc1eaa
parent7dc26509c69a1801a11c0ad07607faf858aee4fc (diff)
* 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
-rw-r--r--ChangeLog5
-rw-r--r--load.c4
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 <matz@ruby-lang.org>
+
+ * 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 <nobu@ruby-lang.org>
* 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)))) {