diff options
author | Björn Gustavsson <[email protected]> | 2016-01-25 13:12:50 +0100 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2016-01-25 15:06:25 +0100 |
commit | 1ddab9c7b66237ea6dd429fb75e4c81247d88920 (patch) | |
tree | b9e4b4beb7007e7fe9789f6965a19aab719ab25b /lib/kernel/test/code_SUITE.erl | |
parent | 62238bdab1c035388d83bdfb670ee178c6f3f448 (diff) | |
download | otp-1ddab9c7b66237ea6dd429fb75e4c81247d88920.tar.gz otp-1ddab9c7b66237ea6dd429fb75e4c81247d88920.tar.bz2 otp-1ddab9c7b66237ea6dd429fb75e4c81247d88920.zip |
Eliminate run-time system crash in code:load_abs/1
The run-time system would terminate if code:load_abs/1 was
called with a filename containing any non-latin1 characters.
The reason is that code_server would attempt to construct a
module name from the filename using list_to_atom/1 and that
atoms currently are limited to the latin1 character set.
But how should the error be reported?
I have decided to that the simplest and least confusing way
is to move the call to list_to_atom/1 to 'code' module and
let it crash the calling process. The resulting stack back
trace will make it clear what the reason for the crash was.
Diffstat (limited to 'lib/kernel/test/code_SUITE.erl')
-rw-r--r-- | lib/kernel/test/code_SUITE.erl | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/kernel/test/code_SUITE.erl b/lib/kernel/test/code_SUITE.erl index ef5303defd..8f97b6c6f8 100644 --- a/lib/kernel/test/code_SUITE.erl +++ b/lib/kernel/test/code_SUITE.erl @@ -323,6 +323,7 @@ load_abs(Config) when is_list(Config) -> {error, nofile} = code:load_abs(TestDir ++ "/duuuumy_mod"), {error, badfile} = code:load_abs(TestDir ++ "/code_a_test"), {'EXIT', _} = (catch code:load_abs({})), + {'EXIT', _} = (catch code:load_abs("Non-latin-имя-файла")), {module, code_b_test} = code:load_abs(TestDir ++ "/code_b_test"), code:stick_dir(TestDir), {error, sticky_directory} = code:load_abs(TestDir ++ "/code_b_test"), |