aboutsummaryrefslogtreecommitdiffstats
path: root/load.c
diff options
context:
space:
mode:
Diffstat (limited to 'load.c')
-rw-r--r--load.c7
1 files changed, 5 insertions, 2 deletions
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)))