diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | load.c | 7 |
2 files changed, 10 insertions, 2 deletions
@@ -1,3 +1,8 @@ +Sat Apr 9 10:03:12 2016 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * load.c (rb_f_load): raise with the original path name before + encoding conversion. + Sat Apr 9 02:05:10 2016 Nobuyoshi Nakada <nobu@ruby-lang.org> * bignum.c (rb_cstr_parse_inum): [EXPERIMENTAL] new function to @@ -698,13 +698,16 @@ static VALUE rb_f_load(int argc, VALUE *argv) { VALUE fname, wrap, path, orig_fname; + int safe; rb_scan_args(argc, argv, "11", &fname, &wrap); RUBY_DTRACE_HOOK(LOAD_ENTRY, StringValuePtr(fname)); - orig_fname = FilePathValue(fname); - fname = rb_str_encode_ospath(orig_fname); + safe = rb_safe_level(); + orig_fname = rb_get_path_check_to_string(fname, safe); + fname = rb_get_path_check_convert(fname, orig_fname, safe); + fname = rb_str_encode_ospath(fname); path = rb_find_file(fname); if (!path) { if (!rb_file_load_ok(RSTRING_PTR(fname))) |