From d6fc8f3d572f777d434e18f81147371c1f33ad6c Mon Sep 17 00:00:00 2001 From: Durable Programming Team Date: Wed, 28 Aug 2024 16:53:26 -0400 Subject: [PATCH] [rubygems/rubygems] fix `@license` typo preventing licenses from being correctly unmarshalled https://github.com/rubygems/rubygems/commit/d6ba7ef79f --- lib/rubygems/specification.rb | 2 +- test/rubygems/test_gem_safe_marshal.rb | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb index d0e0e4e91a..594d882c6b 100644 --- a/lib/rubygems/specification.rb +++ b/lib/rubygems/specification.rb @@ -1318,7 +1318,7 @@ class Gem::Specification < Gem::BasicSpecification spec.instance_variable_set :@has_rdoc, array[15] spec.instance_variable_set :@new_platform, array[16] spec.instance_variable_set :@platform, array[16].to_s - spec.instance_variable_set :@license, array[17] + spec.instance_variable_set :@licenses, [array[17]] spec.instance_variable_set :@metadata, array[18] spec.instance_variable_set :@loaded, false spec.instance_variable_set :@activated, false diff --git a/test/rubygems/test_gem_safe_marshal.rb b/test/rubygems/test_gem_safe_marshal.rb index ebb000a9ef..1085aca9fd 100644 --- a/test/rubygems/test_gem_safe_marshal.rb +++ b/test/rubygems/test_gem_safe_marshal.rb @@ -305,6 +305,18 @@ class TestGemSafeMarshal < Gem::TestCase end end + def test_gem_spec_unmarshall_license + spec = Gem::Specification.new do |s| + s.name = "hi" + s.version = "1.2.3" + s.license = "MIT" + end + + unmarshalled_spec = Gem::SafeMarshal.safe_load(Marshal.dump(spec)) + + assert_equal ["MIT"], unmarshalled_spec.license + end + def test_gem_spec_disallowed_symbol e = assert_raise(Gem::SafeMarshal::Visitors::ToRuby::UnpermittedSymbolError) do spec = Gem::Specification.new do |s|