From 035ce9f7b5856dc6508c5453fe595f023332a979 Mon Sep 17 00:00:00 2001 From: nobu Date: Sat, 9 Apr 2016 01:03:15 +0000 Subject: load.c: raise name before conversion * load.c (rb_f_load): raise with the original path name before encoding conversion. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54521 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- load.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'load.c') diff --git a/load.c b/load.c index a3b32d4389..fc2e44b7c2 100644 --- a/load.c +++ b/load.c @@ -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))) -- cgit v1.2.3