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)))) {