mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/rubygems/installer.rb: Untaint string when checking output
for $SAFE=1 * lib/rubygems/specification.rb: Keep previously loaded specs as active. This prevents double loading when refreshing the gem list. * test/rubygems/test_gem.rb: Test for above * lib/rubygems.rb: Bump version to 2.0.0.rc.2 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38855 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
1be8ac57ab
commit
219e156687
5 changed files with 40 additions and 1 deletions
11
ChangeLog
11
ChangeLog
|
@ -1,3 +1,14 @@
|
|||
Thu Jan 17 09:30:21 2013 Eric Hodel <drbrain@segment7.net>
|
||||
|
||||
* lib/rubygems/installer.rb: Untaint string when checking output
|
||||
for $SAFE=1
|
||||
|
||||
* lib/rubygems/specification.rb: Keep previously loaded specs as
|
||||
active. This prevents double loading when refreshing the gem list.
|
||||
* test/rubygems/test_gem.rb: Test for above
|
||||
|
||||
* lib/rubygems.rb: Bump version to 2.0.0.rc.2
|
||||
|
||||
Thu Jan 17 09:08:37 2013 Eric Hodel <drbrain@segment7.net>
|
||||
|
||||
* doc/syntax/control_expressions.rdoc: Added ? : ternary if
|
||||
|
|
|
@ -98,7 +98,7 @@
|
|||
require 'rbconfig'
|
||||
|
||||
module Gem
|
||||
VERSION = '2.0.0.preview3.1'
|
||||
VERSION = '2.0.0.rc.2'
|
||||
end
|
||||
|
||||
# Must be first since it unloads the prelude from 1.9.2
|
||||
|
|
|
@ -489,6 +489,7 @@ class Gem::Installer
|
|||
|
||||
def ensure_loadable_spec
|
||||
ruby = spec.to_ruby_for_cache
|
||||
ruby.untaint
|
||||
|
||||
begin
|
||||
eval ruby
|
||||
|
|
|
@ -656,6 +656,12 @@ class Gem::Specification
|
|||
|
||||
@@all = specs.values
|
||||
|
||||
# After a reset, make sure already loaded specs
|
||||
# are still marked as activated.
|
||||
specs = {}
|
||||
Gem.loaded_specs.each_value{|s| specs[s] = true}
|
||||
@@all.each{|s| s.activated = true if specs[s]}
|
||||
|
||||
_resort!
|
||||
end
|
||||
@@all
|
||||
|
|
|
@ -959,6 +959,27 @@ class TestGem < Gem::TestCase
|
|||
assert_includes Gem::Specification.all_names, @a1.full_name
|
||||
end
|
||||
|
||||
def test_self_refresh_keeps_loaded_specs_activated
|
||||
util_make_gems
|
||||
|
||||
a1_spec = @a1.spec_file
|
||||
moved_path = File.join @tempdir, File.basename(a1_spec)
|
||||
|
||||
FileUtils.mv a1_spec, moved_path
|
||||
|
||||
Gem.refresh
|
||||
|
||||
s = Gem::Specification.first
|
||||
s.activate
|
||||
|
||||
Gem.refresh
|
||||
|
||||
Gem::Specification.each{|spec| assert spec.activated? if spec == s}
|
||||
|
||||
Gem.loaded_specs.delete(s)
|
||||
Gem.refresh
|
||||
end
|
||||
|
||||
def test_self_ruby_escaping_spaces_in_path
|
||||
orig_ruby = Gem.ruby
|
||||
orig_bindir = Gem::ConfigMap[:bindir]
|
||||
|
|
Loading…
Reference in a new issue