rubygems-update 3.5.8 → 3.5.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +27 -0
  3. data/POLICIES.md +75 -6
  4. data/bundler/CHANGELOG.md +30 -0
  5. data/bundler/lib/bundler/build_metadata.rb +2 -2
  6. data/bundler/lib/bundler/cli.rb +5 -22
  7. data/bundler/lib/bundler/definition.rb +57 -28
  8. data/bundler/lib/bundler/dependency.rb +2 -1
  9. data/bundler/lib/bundler/environment_preserver.rb +2 -20
  10. data/bundler/lib/bundler/injector.rb +2 -1
  11. data/bundler/lib/bundler/man/bundle-add.1 +1 -1
  12. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  13. data/bundler/lib/bundler/man/bundle-cache.1 +1 -1
  14. data/bundler/lib/bundler/man/bundle-check.1 +3 -1
  15. data/bundler/lib/bundler/man/bundle-check.1.ronn +3 -0
  16. data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
  17. data/bundler/lib/bundler/man/bundle-config.1 +1 -3
  18. data/bundler/lib/bundler/man/bundle-config.1.ronn +0 -3
  19. data/bundler/lib/bundler/man/bundle-console.1 +1 -1
  20. data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
  21. data/bundler/lib/bundler/man/bundle-exec.1 +1 -1
  22. data/bundler/lib/bundler/man/bundle-gem.1 +1 -1
  23. data/bundler/lib/bundler/man/bundle-help.1 +1 -1
  24. data/bundler/lib/bundler/man/bundle-info.1 +1 -1
  25. data/bundler/lib/bundler/man/bundle-init.1 +1 -1
  26. data/bundler/lib/bundler/man/bundle-inject.1 +1 -1
  27. data/bundler/lib/bundler/man/bundle-install.1 +1 -1
  28. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  29. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  30. data/bundler/lib/bundler/man/bundle-open.1 +1 -1
  31. data/bundler/lib/bundler/man/bundle-outdated.1 +1 -1
  32. data/bundler/lib/bundler/man/bundle-platform.1 +1 -1
  33. data/bundler/lib/bundler/man/bundle-plugin.1 +1 -1
  34. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  35. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  36. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  37. data/bundler/lib/bundler/man/bundle-update.1 +1 -1
  38. data/bundler/lib/bundler/man/bundle-version.1 +1 -1
  39. data/bundler/lib/bundler/man/bundle-viz.1 +1 -1
  40. data/bundler/lib/bundler/man/bundle.1 +1 -1
  41. data/bundler/lib/bundler/man/gemfile.5 +1 -1
  42. data/bundler/lib/bundler/plugin/installer/path.rb +1 -1
  43. data/bundler/lib/bundler/plugin/installer.rb +1 -1
  44. data/bundler/lib/bundler/rubygems_ext.rb +12 -0
  45. data/bundler/lib/bundler/settings.rb +0 -1
  46. data/bundler/lib/bundler/setup.rb +3 -0
  47. data/bundler/lib/bundler/source/rubygems.rb +3 -16
  48. data/bundler/lib/bundler/source_list.rb +15 -2
  49. data/bundler/lib/bundler/spec_set.rb +1 -1
  50. data/bundler/lib/bundler/version.rb +1 -1
  51. data/bundler/lib/bundler.rb +20 -0
  52. data/lib/rubygems/commands/update_command.rb +8 -9
  53. data/lib/rubygems/deprecate.rb +79 -77
  54. data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +3 -1
  55. data/lib/rubygems/package.rb +11 -5
  56. data/lib/rubygems.rb +1 -1
  57. data/rubygems-update.gemspec +1 -1
  58. metadata +3 -3
@@ -7,7 +7,6 @@
7
7
 
8
8
  # rubocop:enable Style/AsciiComments
9
9
 
10
- require_relative "../rubygems"
11
10
  require_relative "security"
12
11
  require_relative "user_interaction"
13
12
 
@@ -528,12 +527,13 @@ EOM
528
527
  # Loads a Gem::Specification from the TarEntry +entry+
529
528
 
530
529
  def load_spec(entry) # :nodoc:
530
+ limit = 10 * 1024 * 1024
531
531
  case entry.full_name
532
532
  when "metadata" then
533
- @spec = Gem::Specification.from_yaml entry.read
533
+ @spec = Gem::Specification.from_yaml limit_read(entry, "metadata", limit)
534
534
  when "metadata.gz" then
535
535
  Zlib::GzipReader.wrap(entry, external_encoding: Encoding::UTF_8) do |gzio|
536
- @spec = Gem::Specification.from_yaml gzio.read
536
+ @spec = Gem::Specification.from_yaml limit_read(gzio, "metadata.gz", limit)
537
537
  end
538
538
  end
539
539
  end
@@ -557,7 +557,7 @@ EOM
557
557
 
558
558
  @checksums = gem.seek "checksums.yaml.gz" do |entry|
559
559
  Zlib::GzipReader.wrap entry do |gz_io|
560
- Gem::SafeYAML.safe_load gz_io.read
560
+ Gem::SafeYAML.safe_load limit_read(gz_io, "checksums.yaml.gz", 10 * 1024 * 1024)
561
561
  end
562
562
  end
563
563
  end
@@ -664,7 +664,7 @@ EOM
664
664
 
665
665
  case file_name
666
666
  when /\.sig$/ then
667
- @signatures[$`] = entry.read if @security_policy
667
+ @signatures[$`] = limit_read(entry, file_name, 1024 * 1024) if @security_policy
668
668
  return
669
669
  else
670
670
  digest entry
@@ -724,6 +724,12 @@ EOM
724
724
  IO.copy_stream(src, dst)
725
725
  end
726
726
  end
727
+
728
+ def limit_read(io, name, limit)
729
+ bytes = io.read(limit + 1)
730
+ raise Gem::Package::FormatError, "#{name} is too big (over #{limit} bytes)" if bytes.size > limit
731
+ bytes
732
+ end
727
733
  end
728
734
 
729
735
  require_relative "package/digest_io"
data/lib/rubygems.rb CHANGED
@@ -9,7 +9,7 @@
9
9
  require "rbconfig"
10
10
 
11
11
  module Gem
12
- VERSION = "3.5.8"
12
+ VERSION = "3.5.10"
13
13
  end
14
14
 
15
15
  # Must be first since it unloads the prelude from 1.9.2
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "rubygems-update"
5
- s.version = "3.5.8"
5
+ s.version = "3.5.10"
6
6
  s.authors = ["Jim Weirich", "Chad Fowler", "Eric Hodel", "Luis Lavena", "Aaron Patterson", "Samuel Giddins", "André Arko", "Evan Phoenix", "Hiroshi SHIBATA"]
7
7
  s.email = ["", "", "drbrain@segment7.net", "luislavena@gmail.com", "aaron@tenderlovemaking.com", "segiddins@segiddins.me", "andre@arko.net", "evan@phx.io", "hsbt@ruby-lang.org"]
8
8
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubygems-update
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.8
4
+ version: 3.5.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jim Weirich
@@ -16,7 +16,7 @@ authors:
16
16
  autorequire:
17
17
  bindir: exe
18
18
  cert_chain: []
19
- date: 2024-04-11 00:00:00.000000000 Z
19
+ date: 2024-05-03 00:00:00.000000000 Z
20
20
  dependencies: []
21
21
  description: |-
22
22
  A package (also known as a library) contains a set of functionality
@@ -725,7 +725,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
725
725
  - !ruby/object:Gem::Version
726
726
  version: '0'
727
727
  requirements: []
728
- rubygems_version: 3.5.8
728
+ rubygems_version: 3.5.10
729
729
  signing_key:
730
730
  specification_version: 4
731
731
  summary: RubyGems is a package management framework for Ruby. This gem is downloaded