diff options
author | Aaron Patterson <tenderlove@ruby-lang.org> | 2021-05-10 09:50:06 -0700 |
---|---|---|
committer | Aaron Patterson <tenderlove@ruby-lang.org> | 2021-05-13 09:36:23 -0700 |
commit | cb50aa8d3fb8be01897becff77b4922b12a0ab4c (patch) | |
tree | 400c2acb636fe2e4f0a56920165648f28132a9cd /test/psych/test_exception.rb | |
parent | 64bee7e2dee741a9f64e5c1b2122c07ef3e6c81a (diff) | |
download | psych-cb50aa8d3fb8be01897becff77b4922b12a0ab4c.zip |
Introduce `Psych.unsafe_load`
In future versions of Psych, the `load` method will be mostly the same
as the `safe_load` method. In other words, the `load` method won't
allow arbitrary object deserialization (which can be used to escalate to
an RCE). People that need to load *trusted* documents can use the
`unsafe_load` method.
This commit introduces the `unsafe_load` method so that people can
incrementally upgrade. For example, if they try to upgrade to 4.0.0 and
something breaks, they can downgrade, audit callsites, change to
`safe_load` or `unsafe_load` as required, and then upgrade to 4.0.0
smoothly.
Diffstat (limited to 'test/psych/test_exception.rb')
-rw-r--r-- | test/psych/test_exception.rb | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/test/psych/test_exception.rb b/test/psych/test_exception.rb index 4d76081..d2ae76a 100644 --- a/test/psych/test_exception.rb +++ b/test/psych/test_exception.rb @@ -33,13 +33,13 @@ module Psych def test_backtrace err = make_ex - new_err = Psych.load(Psych.dump(err)) + new_err = Psych.unsafe_load(Psych.dump(err)) assert_equal err.backtrace, new_err.backtrace end def test_naming_exception err = String.xxx rescue $! - new_err = Psych.load(Psych.dump(err)) + new_err = Psych.unsafe_load(Psych.dump(err)) assert_equal err.message, new_err.message end @@ -56,7 +56,7 @@ module Psych # deprecated interface ex = assert_raise(Psych::SyntaxError) do - Psych.load '--- `', 'deprecated' + Psych.unsafe_load '--- `', 'deprecated' end assert_equal 'deprecated', ex.file end @@ -165,7 +165,7 @@ module Psych end def test_convert - w = Psych.load(Psych.dump(@wups)) + w = Psych.unsafe_load(Psych.dump(@wups)) assert_equal @wups.message, w.message assert_equal @wups.backtrace, w.backtrace assert_equal 1, w.foo |