summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)))) {